KernelOneiricUbuntuDeltaReview

Summary

Review of the current Ubuntu Kernel patch delta from upstream. This session will look at the current delta comprised of both patches to the core and the ubuntu specific drivers. The aim is to record what we are carrying, review the reasons for that component(s) to be carried, and recommend replacements, updates, cleanups, upstreaming etc of those components.

Release Note

TBD

Rationale

All patches and drivers carried in the Ubuntu delta are not automatically sync'd with the upstream kernel for various reasons. This places a maintenance burden on the Ubuntu kernel team. These patches and drivers must be regularly reviewed to determine if they are still needed, if they need updating to a later version, or if they are now ready for upstream acceptance. The purpose of this blueprint is to facilitate and record this review for the Oneiric cycle.

This review is based on the the initial Natty sync to Oneiric, at the Ubuntu2.6.38-7.39- release. The delta at that point was broken down as below:

# patches

comment

534

patches on top of the v2.6.38 kernel

14

patches which are now upstream (stable et al) - we hadn't rebased Natty to stable yet when we opened Oneiric

106

SAUCE patches

294

debian commits (configuration updates and build machinary)

58

ubuntu/ driver patches

62

patches added then reverted (eg. 31 applied, then reverted)

Ubuntu Delta

Patches now upstream

  1. (drop after v2.6.38) x86, quirk: Fix SB600 revision check
  2. (drop after 2.6.38) ahci: AHCI mode SATA patch for Intel Patsburg SATA RAID controller
  3. UBUNTU: SAUCE: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626
  4. UBUNTU: SAUCE: (drop after 2.6.38) eeepc-wmi: add wlan key found on 1015P
  5. UBUNTU: SAUCE: (drop after 2.6.38) eeepc-wmi: reorder keymap
  6. UBUNTU: SAUCE: match up ENTRY/END naming for 32/64 bit
  7. UBUNTU: SAUCE: Dell All-In-One: Remove need for Dell module alias
  8. UBUNTU: SAUCE: Dell WMI: Use sparse keymaps and tidy up code.
  9. UBUNTU: SAUCE: Add WMI hotkeys support for another Dell All-In-One series
  10. UBUNTU: SAUCE: Add WMI hotkeys support for Dell All-In-One series
  11. UBUNTU: SAUCE: (drop after 2.6.38) use %pK for /proc/kallsyms and /proc/modules'
  12. UBUNTU: SAUCE: OMAP3630: PM: don't warn the user with a trace in case of PM34XX_ERRATUM
  13. winbond: include linux/delay.h for mdelay et al
  14. UBUNTU: SAUCE: enable Marvell 9128 PCIe SATA controller

Ubuntu Drivers

  1. AUFS -- union mount support
    1. UBUNTU: SAUCE: Fix aufs calling of security_path_mknod
    2. UBUNTU: ubuntu: AUFS -- update to 65835da20b77c98fb538c9114fc31f5de1328230
    3. UBUNTU: ubuntu: AUFS -- update to b1cee06249dfa0ab30951e7f06490a75c155b620
    4. UBUNTU: ubuntu: AUFS -- suppress benign plink warning messages
    5. UBUNTU: ubuntu: AUFS -- update to 806051bcbeec27748aae2b7957726a4e63ff308e
    6. UBUNTU: ubuntu: AUFS -- update to c5021514085a5d96364e096dbd34cadb2251abfd
    7. UBUNTU: ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers
    8. UBUNTU: ubuntu: AUFS -- update to 097bf62d6f49619359d34bf17f242df38562489a
    9. UBUNTU: ubuntu: AUFS -- track changes to llseek in v2.6.37-rc1
    10. UBUNTU: ubuntu: AUFS -- track changes to work queue initialisation
    11. UBUNTU: ubuntu: AUFS -- update to aufs2.1-36-UNRELEASED-20101103
    12. UBUNTU: ubuntu: AUFS -- add BOM and automated update script
    • Comments: Currently disabled in Oneiric due to build failure:

       UBUNTU: [Config] Disable CONFIG_AUFS_FS
          
          Build error after rebase to 2.6.39-rc1.  Temporarily disable.
          
          ubuntu-2.6/ubuntu/aufs/super.c:453:13: error: 'inode_lock' undeclared
          (first use in this function)
  2. compcache - compressed memory swap support
    1. UBUNTU: ubuntu: compcache -- follow changes to bd_claim/bd_release
    2. UBUNTU: ubuntu: compcache -- version 0.5.3
    • Comments: Can we drop this yet? I believe userspace bits have been updated to support the newer ramzswap driver?

    • This can now be DROPPED because we have zram in the kernel, need to fix userspace to use the new first.
    • DROPPED (apw)
  3. dm-raid4-5 - software raid support
    1. UBUNTU: ubuntu: dm-raid4-5 -- follow changes to bio flags
    2. UBUNTU: ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc4
    3. UBUNTU: ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc2
    4. UBUNTU: ubuntu: dm-raid4-5 -- update to compile with 2.6.33
    5. UBUNTU: ubuntu: dm-raid4-5: Depend on XOR_BLOCKS
    6. UBUNTU: ubuntu: dm-raid-45 -- update to compile with 2.6.32
    7. UBUNTU: ubuntu: dm-raid45 -- version 2009.04.24 (2.6.30-rc3)
    • Comments: No new updates since Apr 2009. Currently disabled in Oneiric due to build failure. Should we drop this?

          UBUNTU: [Config] Disable CONFIG_DM_RAID45
          
          Build error after rebase to 2.6.39-rc1.  Temporarily disable.
          
          ubuntu-2.6/ubuntu/dm-raid4-5/dm-raid4-5.c:3286:4: error: implicit
          declaration of function 'blk_unplug'
    • Updated Info:

      • Module is needed to activate RAID4 and RAID5 configurations with dmraid (package). This reads the meta-data created by BIOS supported soft-RAID implementations and creates device-mapper targets.
      • Upstream indicated that the dm-raid45 module is seen as deprecated and dm-raid (a RAID 4/5/6 target) would be the replacement. However currently available versions of the user-space application do not support this. The difference between both targets is substantial from the point of table formats. This means to create a mapping with the new target the user-space side has to change substantially.
      • So currently we will need to go with the old module.
  4. fsam7400 - SW RF kill switch for Fujitsu Siemens Amilo M 7400 / Maxdata 7000DX and compatible hardware.
    1. UBUNTU: ubuntu: fsam7400: Depend on CHECK_SIGNATURE
    2. UBUNTU: ubuntu: fsam7400 -- Cleanup Makefile
    3. UBUNTU: UBUNTU: ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M 7400
  5. iscsitarget - internet connected disk connectivity support
    1. UBUNTU: ubuntu: iscsitarget -- follow changes to open_bdev_exclusive
    2. UBUNTU: ubuntu: iscsitarget -- convert NIPQUAD to %pI4
    3. UBUNTU: ubuntu: iscsitarget -- follow changes to semaphore initialisation
    4. UBUNTU: ubuntu: iscsitarget -- re-instate copy_io_context
    5. UBUNTU: ubuntu: iscsitarget -- version 1.4.20.2
    6. UBUNTU: ubuntu: iscsitarget -- version 1.4.20.1
    7. UBUNTU: ubuntu: iscsitarget -- rename daddr inet_sock field
    8. UBUNTU: ubuntu: iscsitarget --- version 1.4.19
    • Comments: No new updates since July 2010 (v1.4.20.2). Currently disabled in Oneiric due to build failure.

          UBUNTU: [Config] Disable CONFIG_SCSI_ISCSITARGET
          
          Build error after rebase to 2.6.39-rc1.  Temporarily disable.
          
          ubuntu-2.6/ubuntu/iscsitarget/block-io.c:130:22: error: 'struct
          request_queue' has no member named 'unplug_fn'
  6. ndiswrapper - windows network driver support
    1. UBUNTU: ubuntu: ndiswrapper -- fix interaction between packed and packed

    2. UBUNTU: ubuntu: ndiswrapper -- follow removal of the BKL and locked ioctl
    3. UBUNTU: ubuntu: ndiswrapper -- update BOM to match actual version
    4. UBUNTU: SAUCE: ndiswrapper: Initialize buffer index and check its value
    5. UBUNTU: SAUCE: make ndiswrapper available on X86 only
    6. UBUNTU: SAUCE: ndiswrapper: convert multicast list to list_head
    7. UBUNTU: SAUCE: ndiswrapper: rename usb_buffer_alloc() and usb_buffer_free()
    8. UBUNTU: SAUCE: Updated ndiswrapper to 1.56
    9. UBUNTU: ubuntu: ndiswrapper -- version 1.55
  7. omnibook - HP OmniBook support module

    1. UBUNTU: SAUCE: omnibook: fix source file newline
    2. UBUNTU: ubuntu: omnibook -- update BOM
    3. UBUNTU: SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on X86
    4. UBUNTU: ubuntu: onmibook -- Added missing BOM file
    5. UBUNTU: ubuntu: omnibook -- support Toshiba (HP) netbooks
  8. rfkill - various rfkill drivers
    1. UBUNTU: SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on X86
    2. UBUNTU: ubuntu: rfkill drivers -- version 1.3
  9. rtl8192se - realtek network controller
    1. UBUNTU: SAUCE: rtl8192se: fix source file newline
    2. UBUNTU: SAUCE: rtl8192se: fix source file perms
    3. UBUNTU: SAUCE: enable rfkill for rtl8192se driver
    4. UBUNTU: ubuntu: rtl8192se -- update to version 0017.0507.2010
    5. UBUNTU: ubuntu: rtl8192se -- update to version 0015.0127.2010
    6. UBUNTU: ubuntu: rtl8192se -- version 2010-0115,0014
    • Comments: Why is this not yet in upstream staging?

Ubuntu Patches (not for upstream)

  1. UBUNTU: (no-up) add support for installed header files to ubuntu directory
  2. UBUNTU: (no-up): document the new ## scheme
  3. UBUNTU: SAUCE: (no-up) ARM: Resetting power_mode to its original value.
  4. UBUNTU: SAUCE: (no-up) Modularize vesafb -- fix initialisation
  5. UBUNTU: SAUCE: (no-up) dma-mapping: Remove WARN_ON in dma_free_coherent
  6. UBUNTU: SAUCE: (no-up) cdrom -- default to not locking the tray when in use
  7. UBUNTU: SAUCE: (no-up) PM report driver and device suspend/resume times.
  8. UBUNTU: (no-up) arm -- enable ubuntu/ directory
  9. UBUNTU: SAUCE: (no-up) select a v7 CPU for versatile
  10. UBUNTU: SAUCE: (no-up) set /proc/acpi/video/*/DOS to 4 by default
  11. UBUNTU: SAUCE: (no-up) trace: add trace events for open(), exec() and uselib()
  12. UBUNTU: SAUCE: (no-up) raise the default console 'quiet' level to 2
  13. UBUNTU: SAUCE: (no-up) disable adding scsi headers to linux-libc-dev
  14. UBUNTU: SAUCE: (no-up) nbd: Change default partitions per device to 15
  15. UBUNTU: SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache
  16. UBUNTU: SAUCE: (no-up) hostap: Change initial operation mode to managed (infra)
  17. UBUNTU: SAUCE: (no-up) version: Implement version_signature proc file.
  18. UBUNTU: SAUCE: (no-up) Modularize vesafb
  19. UBUNTU: (no-up) fold down debian for ubuntu-natty 2.6.36 rebase
  20. UBUNTU: [Config] Note dropped SAUCE patches from 2.6.36 to 2.6.37
    • Marked as '(no-up)' in Oneiric
  21. UBUNTU: more dropped patches
    • Marked as '(no-up)' in Oneiric
  22. UBUNTU: Added dropped patch list
    • Marked as '(no-up)' in Oneiric

Ubuntu Patches (for review)

  1. Andy Whitcroft
    1. UBUNTU: SAUCE: drm/i915: Fix pipelined fencing
    2. UBUNTU: SAUCE: match up ENTRY/END naming for 32/64 bit
    3. UBUNTU: SAUCE: (drop after 2.6.38) Convert net %p usage %pK
    4. brcm80211: include linux/slab.h for kfree
    5. UBUNTU: SAUCE: x86 fix up jiffies/jiffies_64 handling
    6. UBUNTU: SAUCE: fbcon -- fix OOPs triggered by race prevention fixes
    7. UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers
    8. UBUNTU: SAUCE: hotkey quirks for various Zeptro Znote and Fujitsu Amilo laptops
      • DROPPED (already) [apw]
    9. UBUNTU: SAUCE: Yama: follow changes to generic_permission
      • already in the upstream yama tree, merge with ubuntu
      • TITLE UPDATED [apw]
    10. UBUNTU: SAUCE: add tracing for user initiated readahead requests
    11. UBUNTU: SAUCE: vfs: Add a trace point in the mark_inode_dirty function
      • should be marked (no up)
      • MARKED (no-up) [apw]
    12. Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series Laptops
    13. x86, mce: Make xeon75xx memory driver dependent on PCI
    14. x86, mce: Rename cpu_specific_poll to mce_cpu_specific_poll
    15. x86, mce: Xeon75xx specific interface to get corrected memory error information
      • Should be landing upstream
      • WAITING ON UPSTREAMING, NO ACTION [apw]
    16. UBUNTU: SAUCE: fix documentation strings for struct input_keymap_entry
      • no longer needed
      • DROPPED [apw]
    17. tty: include linux/slab.h for kfree
    18. gpio/ml_ioh_gpio: include linux/slab.h for kfree
    19. pch_dma: add include/slab.h for kfree
      • unsure which architecture required these, need to confirm and upstream
      • not needed for main, armel or powerpc builds
      • DROPPED [apw]
    20. sched: tg->se->load should be initialised to tg->shares

      • looks like this may have been superceeded or lost, emailed the originator for clarification
    21. UBUNTU: [Upstream] add local prefix to oss local change_bits
      • push upstream
      • patch cleaned up and shoved upstream
      • UPSTREAMED [apw]
    22. UBUNTU: SAUCE: add option to hand off all kernel parameters to init
    23. UBUNTU: SAUCE: khubd -- switch USB product/manufacturer/serial handling to RCU
    24. UBUNTU: SAUCE: drm -- stop early access to drm devices
      • push upstream
    25. Revert "mmc: fix all hangs related to mmc/sd card insert/removal during suspend/resume"
    26. UBUNTU: SAUCE: vt -- fix handoff numbering to 1..n and add range checks (grub)
    27. UBUNTU: SAUCE: vt -- fix handoff numbering to 1..n and add range checks
    28. UBUNTU: SAUCE: vt -- allow grub to request automatic vt_handoff
    29. UBUNTU: SAUCE: vt -- maintain bootloader screen mode and content until vt switch
      • merge fixes into primary patches
      • FIXES MERGED [apw]
    30. UBUNTU: SAUCE: ensure root is ready before running usermodehelpers in it
    31. UBUNTU: SAUCE: Make populate_rootfs asynchronous
    32. UBUNTU: SAUCE: fix build error with CONFIG_BLK_DEV_INITRD=n
      • squash into "UBUNTU: SAUCE: Make populate_rootfs asynchronous"
    33. UBUNTU: SAUCE: acpi battery -- move first lookup asynchronous
    34. UBUNTU: SAUCE: async_populate_rootfs: move rootfs init earlier
    35. UBUNTU: SAUCE: isapnp_init: make isa PNP scans occur async
  2. Brad Figg
    1. UBUNTU: SAUCE: Increase the default prealloc buffer for HDA audio devices (non-modem)
      1. This is still a nice patch to carry. It helps with audio in a general sense. mark (no-up) on next rebase. We'll carry this indefinitely.
  3. Eric Miao
    1. UBUNTU: SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on X86
      We've disabled the ubuntu/onmibook and ubuntu/rfkill driver's for now in Oneiric.  So there's nothing to do for this patch at the moment
  4. Henrik Rydberg
    1. hid: ntrig: Mask pen switch events
    2. hid: ntrig: Support single-touch devices
    3. UBUNTU: SAUCE: hid: ntrig: Setup input filtering manually
    4. UBUNTU: SAUCE: hid: ntrig: remove sysfs nodes
    5. UBUNTU: SAUCE: hid: ntrig: zero-initialize ntrig struct
    6. UBUNTU: SAUCE: hid: ntrig: Correct logic for quirks
    7. UBUNTU: SAUCE: hid: ntrig: Remove unused device ids
      Continue to carry all of the above hid nitrig patches as they have not yet landed upstream
  5. John Johansen
    1. UBUNTU: SAUCE: Fix aufs calling of security_path_mknod
    2. UBUNTU: SAUCE: AppArmor: Fix unpack of network tables.

    3. AppArmor: compatibility patch for v5 interface

    4. AppArmor: compatibility patch for v5 network controll

    5. UBUNTU: SAUCE: Improve Amazon EBS performance for EC2
    6. UBUNTU: SAUCE: fix pv-ops for legacy Xen
    7. UBUNTU: SAUCE: AppArmor: Allow dfa backward compatibility with broken userspace

      basically keep all the patches.  Though the AA patches are going to get an update, but that will happen when I finish up and get the pull request together.
  6. Kees Cook
    1. Yama: fix default relationship to check thread group
    2. Yama: use thread group leader when creating match
    3. UBUNTU: SAUCE: proc: hide kernel addresses via %pK in /proc/<pid>/stack

      • Should be landing upstream
    4. nx-emu: fix inverted report of disable_nx
    5. UBUNTU: SAUCE: nx-emu: use upstream ASLR when possible
    6. mmap randomization for executable mappings on 32-bit
    7. nx-emu: standardize boottime message prefix
    8. nx-emu: drop exec-shield sysctl, merge with disable_nx
    9. i386: NX emulation
    10. UBUNTU: SAUCE: fix compilation warning when CONFIG_SECURITY is not set
    11. UBUNTU: SAUCE: Yama: verify inode is symlink to avoid bind mounts
    12. UBUNTU: SAUCE: Yama: search for PTRACE exceptions via thread group leader
    13. UBUNTU: SAUCE: Yama: check PTRACE using thread group leader
    14. UBUNTU: SAUCE: security: unconditionally chain to Yama LSM
    15. UBUNTU: SAUCE: Yama: add PTRACE exception tracking and interface
    16. UBUNTU: SAUCE: security: create task_free security callback
    17. UBUNTU: [Upstream] security: Yama LSM
  7. Lee Jones
    1. UBUNTU: SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX
    2. UBUNTU: SAUCE: OMAP: DSS2: check for both cpu type and revision, rather than just revision
    3. UBUNTU: SAUCE: ARM: OMAP: Add macros for comparing silicon revision
      • referred to upstream
      • these can all be dropped
      • DROPPED [ogasawara]
    4. UBUNTU: Stop ARM boards crashing when CUPS is loaded
      • definatly needed will not go upstream in this form, should be (no-up)
  8. Manoj Iyer
    1. Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15
    2. UBUNTU: SAUCE: (drop after 2.6.38) add ricoh 0xe823 pci id.
    3. UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface.
      <manjo> ogasawara, in delta review Manoj Iyer
      <manjo> Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15
      <manjo> UBUNTU: SAUCE: (drop after 2.6.38) add ricoh 0xe823 pci id.
      <manjo> those two patches can be dropped as they should be in stable already
      <manjo> ogasawara, the 3rd one has original author as Timo so I have
      emailed him to report the status
  9. Mathieu J. Poirier
    1. UBUNTU: SAUCE: ARM: Adding vdd_sdi regulator supply to OMAP3EVM
    2. UBUNTU: ARM: Adding regulator supply for vdds_sdi.
      [10:00:49] <mpoirier> I took a look at the patches you identified
      [10:00:59] <mpoirier> vdd_sdi, for omap processors.
      [10:01:49] <mpoirier> ogasawara: those patches have been refused upstream. Arnd wanted an change to how the display subsystem was discovering the output, somehting I couldn't do.
      [10:02:17] <mpoirier> ogasawara: I'm sure it was fixed by someone but I don't have the HW anymore.
      [10:02:43] <ogasawara> mpoirier: do you know who has hw now?
      [10:02:57] <mpoirier> ogasawara: no clue - mobile team most likely.
      [10:03:02] <ogasawara> mpoirier: if it was indeed fixed, we could probably drop those patches, but would be good to test and confirm first.
      [10:03:23] <mpoirier> ogasawara: ya, I'd like to test before giving the go ahead.
      [10:03:55] <ogasawara> mpoirier: thanks, I'll make a note to carry them for now and drop only after testing
  10. Ricardo Salveti de Araujo
    1. UBUNTU: SAUCE: omap3: beaglexm: fix DVI initialization
  11. Tim Gardner
    1. UBUNTU: SAUCE: Disable building the ACPI debugfs source
      mark (no-up) on next rebase. We'll carry this indefinitely.
    2. UBUNTU: Sony laptop: Some Sony Vaia laptops do not enable wwan power by default
      mark (no-up) on next rebase. We'll carry this indefinitely.
  12. Timo Aaltonen
    1. UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface.
      • this is a valid patch and should be upstreamed. Keep until it collides.
      • UPSTREAM

Patches dropped during the Natty rebase cycle

  1. UBUNTU: SAUCE: (no-up) Restore VT fonts on switch
    • Results in a build failure due to it being a consumer of the BKL

BoF agenda and discussion

#uds-o  #other #kernel-delta-review
put your session notes here

https://wiki.ubuntu.com/Kernel/Dev/StablePatchFormat
 
On kernel opening, we strip the ubuntu delta removing all of the old
patches which so upstream.

Ubuntu Drivers

- AUFS
 - need to get this updated
 - need to review overlayfs
- COMPCACHE
 - We should be able to drop this once the support for the new form is
   in which is simple.
- dm-raid-45
 - Seems to _still_ be needed.  Needs fixing.
- fsam7400 
 - unknown if these are still needed
- disable and see who screams
- iscsitarget
 - likely to be needed, needs fixing
- NDISWrapper
 - is in active use, and working, still needed
- omnibook
 - disable and see who screams
- rfkill
 - disable and see who screams
- rtl8192se
 - why is this not in staging, need to investigate
 
 Should pull Apparmour, yama, and NX up as UBUNTU: ubuntu: <foo>
 
 ACTION
[apw] update aufs2 for alpha-1
[apw] review overlayfs
[stefan-bader-canonical] dm-raid-45: update and re-enable
[leannogasawara] investigate fujitsu system in HEXR, are we able to test and confirm if we really need the fsam7400 delta?
[leannogasawara] fix up iscsitarget build failure; ask server team what they need it for and if they can test it.  ping server team mailing list.(https://lists.ubuntu.com/mailman/listinfo/ubuntu-server)
[leannogasawara] omnibook, rfkill, fsam7400 - disable in O. If no one screams we'll completely yank the code in P
[leannogasawara] follow up with OEM about rlt8192se and why we need to carry this and why is this not upstream in staging
[leannogasawara] add alpha1 work items for individual developers with patches to review
[leannogasawara] ping henrik rydberg about his patches
[kees] revert Yama and nx-emu patches
[kees] merge new Yama and nx-emu patches with UBUNTU: ubuntu: $name, send pull request
[leannogasawara] just drop the easycap FTBS sauce patch

Results

Compcache

We have been carrying compcache for some time. We now have an official merge of the zram driver which is and updated version of ramzswap which is actually what we have been carrying and using. Investigations showed that our version of ramzswap was no longer functioning currectly failing to load at boot times, it also showed that userspace was actually unable to load the driver (separatly) due to changes in udev. As userspace needed fixing we decided to migrate to zram. This allowed us to drop this driver from the Ubuntu delta.


CategorySpec

KernelTeam/Specs/KernelOneiricUbuntuDeltaReview (last edited 2011-11-08 18:34:51 by leannogasawara)