• Immutable Page
  • Info
  • Attachments

ShouldFix26

Please do not edit this list for now. Email changes to me if you like. Nick Piggin <piggin@cyberone.com.au>

last updated from 2.6.0-test11-mm1

Should-fix bugs

Legend:

  • PRI1: We're totally lame if this doesn't get in

  • PRI2: Would be nice

  • PRI3: Not very important

-- Not-ready features and speedups --

drivers/block/

  • viro: paride drivers need a big cleanup. Partially done, but ATAPI drivers

    • need serious work and bug fixing.

      PRI2

drivers/char/rtc/

  • rmk, trini: add support for alarms to the existing generic rtc driver.

    • PRI2

console drivers

  • There are few must-fix bugs in cursor handling.

  • Play with gpm selection for a while and your cursor gets corrupted with

    • random dots. Ouch.

device mapper

  • ioctl interface cleanup patch is ready (redo the structure layouts)

    • PRI1

  • A port of the 2.4 snapshot and mirror targets is in progress

    • PRI1

  • the fs interface to dm needs to be redone. gregkh was going to work on

    • this. viro is interested in seeing work thus-far.

      PRI2

drivers/net/wireless/

  • get latest orinoco changes from David.

    • PRI1

  • get the latest airo.c fixes from CVS. This will hopefully fix problems

    • people have reported on the LKML.

      PRI1

  • get HostAP driver in the kernel. No consolidation of the 802.11

    • management across driver can happen until this one is in (which is probably 2.7.X material). I think Jouni is mostly ready but didn't find time for it.

      PRI2

  • get more wireless drivers into the kernel. The most "integrable" drivers

    • at this point seem the NWN driver, Pavel's Spectrum driver and the Atmel driver.

      PRI1

  • The last two drivers mentioned above are held up by firmware issues (see

    • flamewar on LKML a few days ago). So maybe fixing those firmware issues should be a requirement for 2.6.X, because we can expect more wireless devices to need firmware upload at startup coming to market.

      (in progress?)

      PRI1

drivers/usb/gadget/

  • rmk: SA11xx USB client/gadget code (David B has been doing some work on

    • this, and keeps trying to prod me, but unfortunately I haven't had the time to look at his work, sorry David.)

      PRI3

fs/

  • ext3 and ext2 block allocators have serious failure modes - interleaved

    • allocations.

      PRI3

  • Integrate Chris Mason's 2.4 reiserfs ordered data and data journaling

    • patches. They make reiserfs a lot safer.

      Ordered: PRI2 data journalled: PRI3

  • (Trond:) Yes: I'm still working on an atomic "open()", i.e. one

    • where we short-circuit the usual VFS path_walk() + lookup() + permission() + create() + .... bullsh*t...

      I have several reasons for wanting to do this (all of them related to NFS of course, but much of the reasoning applies to *all* networked file systems).

    • 1) The above sequence is simply not atomic on *any* networked

      • filesystem.

      2) It introduces a sh*tload of completely unnecessary RPC calls (why

      • do a 'permission' RPC call when the server is in *any* case going to tell you whether or not this operations is allowed. Why do a 'lookup()' when the 'create()' call can be made to tell you whether or not a file already exists).

      3) It is incompatible with some operations: the current create()

      • doesn't pass an 'EXCLUSIVE' flag down to the filesystems.

      4) (NFS specific?) open() has very different cache consistency

      • requirements when compared to most other VFS operations.

      I'd very much like for something like Peter Braam's 'lookup with intent' or (better yet) for a proper dentry->open() to be integrated with path_walk()/open_namei(). I'm still working on the latter (Peter has already completed the lookup with intent stuff).

      (All this is in progress, see http://www.fys.uio.no/~trondmy/src)

      (Is awaiting Pater Braam's intent patches. Applicable to CIFS)

      PRI2 (?)

  • viro: convert more filesystems to use lib/parser.c for options.

    • PRI2

  • aio: fs IO isn't async at present. suparna has restart patches, they're

    • in -mm. Need to get Ben to review/comment.

      PRI1.

  • drepper: various filesystems use ->pid wrongly

    • PRI1

  • hch: devfs: there's a fundamental lookup vs devfsd race that's only

    • fixable by introducing a lookup vs devfs deadlock. I can't see how this is fixable without getting rid of the current devfsd design. Mandrake seems to have a workaround for this so this is at least not triggered so easily, but that's not what I'd consider a fix..

      PRI2

kernel/

  • rusty: Zippel's Reference count simplification. Tricky code, but cuts

    • about 120 lines from module.c. Patch exists, needs stressing.

      PRI3

  • rusty: Fix module-failed-init races by starting module "disabled". Patch

    • exists, requires some subsystems (ie. add_partition) to explicitly say "make module live now". Without patch we are no worse off than 2.4 etc.

      PRI1

  • Integrate userspace irq balancing daemon.

    • PRI2

  • kexec. Seems to work, was in -mm.

    • PRI3

  • rmk: lib/inflate.c must not use static variables (causes these to be

    • referenced via GOTOFF relocations in PIC decompressor. We have a PIC decompressor to avoid having to hard code a per platform zImage link address into the makefiles.)

      PRI2

  • klibc merge?

    • PRI2

mm/

  • dropbehind for large files

    • PRI2

net/

  • (davem)

  • Real serious use of IPSEC is hampered by lack of MPLS support. MPLS is a

    • switching technology that works by switching based upon fixed length labels prepended to packets. Many people use this and IPSEC to implement VPNs over public networks, it is also used for things like traffic engineering.

      A good reference site is:

      Anyways, an existing (crappy) implementation exists. I've almost completed a rewrite, I should have something in the tree next week.

      PRI1

  • Sometimes we generate IP fragments when it truly isn't necessary.

    • The way IP fragmentation is specified, each fragment must be modulo 8 bytes in length. So suppose the device has an MTU that is not 0 modulo 8, ethernet even classifies in this way. 1500 == (8 * 187) + 4

      Our IP fragmenting engine can fragment on packets that are sized within the last modulo 8 bytes of the MTU. This happens in obscure cases, but it does happen.

      I've proposed a fix to Alexey, whereby very late in the output path we check the packet, if we fragmented but the data length would fit into the MTU we unfragment the packet.

      This is low priority, because technically it creates suboptimal behavior rather than mis-operation.

      PRI1

net/*/netfilter/

  • Lots of misc. cleanups, which are happening slowly.

    • PRI2

power management

  • PM code in mainline is currently b0rked. Fixes in -mm

    • PRI1

  • Pat and Pavel disagree over swsusp. Need to sort that out.

    • PRI2

  • Frame buffer restore codepaths (that requires some deep PCI magic)

    • PRI2

  • XFree86 hooks

    • PRI2

  • AGP restoration

    • PRI2

  • DRI restoration

    • (davej/Alan: not super-critical, can crash laptop on restore. davej looking into it.)

      PRI2

  • IDE suspend/resume without races (Ben is looking at this a little)

    • PRI2

  • Pat: There are already CPU device structures; MTRRs should be a

    • dynamically registered interface of CPUs, which implies there needs to be some other glue to know that there are MTRRs that need to be saved/restored.

      PRI1

global

  • We need a kernel side API for reporting error events to userspace (could

    • be async to 2.6 itself)

      (Prototype core based on netlink exists)

      PRI2

  • Kai: Introduce a sane, easy and standard way to build external modules

    • - make clean and make modules_install are both broken

      PRI2

drivers

  • Alan: Cardbus/PCMCIA requires all Russell's stuff is merged to do

    • multiheader right and so on

      PRI1

drivers/acpi/

  • Fix acpi for all newer IBM Thinkpads see

  • alan: VIA APIC stuff is one bit of this, there are also some other

    • reports that were caused by ACPI not setting level v edge trigger some times

      PRI1

  • mochel: it seems the acpi irq routing code could use a serious rewrite.

    • grover: The problem is the ACPI irq routing code is trying to piggyback on the existing MPS-specific data structures, and it's generally a hack. So yes mochel is right, but it is also purging MPS-ities from common code as well. I've done some preliminary work in this area and it doesn't seem to break anything (yet) but a rewrite in this area imho should not be rushed out the door. And, I think the above bugs can be fixed w/o the rewrite.

      PRI2

  • mochel: ACPI suspend doesn't work. Important, not cricital. Pat is

    • working it.

      PRI2

drivers/block/

  • Floppy is almost unusably buggy still

    • akpm: we need more people to test & report.

      alan: "Floppy has worked for me since the patches that went in 2.5.69-ac and I think -bk somewhere"

      PRI1

drivers/char/

drivers/ide/

  • (Alan)

  • IDE PIO has occasional unexplained PIO disk eating reports

    • PRI1

  • IDE has multiple zillions of races/hangs in 2.5 still

    • PRI1

  • IDE scsi needs rewriting

    • PRI2

  • IDE needs significant reworking to handle Simplex right

    • PRI2

  • IDE hotplug handling for 2.5 is completely broken still

    • PRI2

  • There are lots of other IDE bugs that wont go away until the taskfile

    • stuff is included, the locking bugs that allow any user to hang the IDE layer in 2.5, and some other updates are forward ported. (esp. HPT372N).

      PRI1

drivers/isdn/

  • (Kai, rmk)

  • isdn_tty locking is completely broken (cli() and friends)

    • PRI2

  • fix other drivers

    • PRI2

  • lots more cleanups, adaption to recent APIs etc

    • PRI3

  • fixup tty-based ISDN drivers which provide TIOCM* ioctls (see my recent

    • 3-set patch for serial stuff)

      Alternatively, we could re-introduce the fallback to driver ioctl parsing for these if not enough drivers get updated.

      PRI3

drivers/net/

  • davej: Either Wireless network drivers or PCMCIA broke somewhen. A

    • configuration that worked fine under 2.4 doesn't receive any packets. Need to look into this more to make sure I don't have any misconfiguration that just 'happened to work' under 2.4

      PRI1

drivers/scsi/

  • jejb: qlogic -

  • hch, Mike Anderson, Badari Pulavarty: scsi locking issues

    • o there are lots of members of struct Scsi_Host/scsi_device/scsi_cmnd

      • with very unclear locking, many of them probably want to become atomic_t's or bitmaps (for the 1bit bitfields).

      o there's lots of volatile abuse in the scsi code that needs to be

      • thought about.

      o there's some global variables incremented without any locks

      PRI2

sound/

  • rmk: several OSS drivers for SA11xx-based hardware in need of

    • ALSA-ification and L3 bus support code for these.

  • rmk: linux/sound/drivers/mpu401/mpu401.c and

    • linux/sound/drivers/virmidi.c complained about 'errno' at some time in the past, need to confirm whether this is still a problem.

  • rmk: need to complete ALSA-ification of the WaveArtist driver for both

    • NetWinder and other stuff (there's some fairly fundamental differences in the way the mixer needs to be handled for the NetWinder.)

      (Issues with forward-porting 2.4 bugfixes.) (Killing off OSS is 2.7 material)

PRI2

arch/i386/

  • Also PC9800 merge needs finishing to the point we want for 2.6 (not all).

    • PRI3

  • davej: PAT support (for mtrr exhaustion w/ AGP)

    • PRI2

  • 2.5.x won't boot on some 440GX

    • alan: Problem understood now, feasible fix in 2.4/2.4-ac. (440GX has two IRQ routers, we use the $PIR table with the PIIX, but the 440GX doesnt use the PIIX for its IRQ routing). Fall back to BIOS for 440GX works and Intel concurs.

      PRI1

  • 2.5.x doesn't handle VIA APIC right yet.

    1. We must write the PCI_INTERRUPT_LINE

    2. We have quirk handlers that seem to trash it.

    • PRI1

  • ECC driver questions are not yet sorted (DaveJ is working on this) (Dan

    • Hollis)

      alan: ECC - I have some test bits from Dan's stuff - they need no kernel core changes for most platforms. That means we can treat it as a random driver merge.

      PRI3

  • alan: 2.4 has some fixes for tsc handling bugs. One where some bioses in

    • SMM mode mess up our toggle on the time high/low or mangle the counter and one where a few chips need religious use of _p for timer access and we don't do that. This is forward porting little bits of fixup.

      ACPI HZ stuff we can't trap - a lot of ACPI is implemented as outb's triggering SMM traps

      PRI1

arch/x86_64/

  • (Andi)

  • time handling is broken. Need to move up 2.4 time.c code.

    • PRI1

  • NMI watchdog seems to tick too fast

    • PRI2

  • need to coredump 64bit vsyscall code with dwarf2

    • PRI2

  • Consider merging of Erich Focht's very clean and simple homenode NUMA

    • scheduler (I have my own in 2.4, but Erich's 2.5 version is much cleaner)

      PRI2

  • Consider port of the Simple NUMA API from 2.4/homenode.

    • PRI3

  • move 64bit signal trampolines into vsyscall code and add dwarf2 for it.

    • (in progress)

      PRI1

  • describe kernel assembly with dwarf2 annotations for kgdb

    • PRI3

arch/alpha/

  • rth: Ptrace writes are broken. This means we can't (reliably) set

    • breakpoints or modify variables from gdb.

      PRI1

arch/arm/

  • rmk: missing raw keyboard translation tables for all ARM machines.

    • Haven't even looked into this at all. This could be messy since there isn't an ARM architecture standard. I'm presently hoping that it won't be an issue. If it does, I guess we'll see drivers/char/keyboard.c explode.

      PRI2

arch/others/

  • SH needs resyncing, as do some other ports. SH64 needs merging.

    • No impact on mainstream platforms hopefully.

      PRI2

arch/s390/

  • A nastly memory management problem causes random crashes. These appear

    • to be fixed/hidden by the objrmap patch, more investigation is needed.

      PRI1

drivers/s390/

  • Early userspace and 64 bit dev_t will allow the removal of most of

    • dasd_devmap.c and dasd_genhd.c.

      PRI2

  • The 3270 console driver needs to be replaced with a working one

    • (prototype is there, needs to be finished).

      PRI2

  • Minor interface changes are pending in cio/ when the z990 machines are

    • out.

      PRI2

  • Jan Glauber is working on a fix for the timer issues related to running

    • on virtualized CPUs (wall-clock vs. cpu time).

      PRI1

  • a block device driver for ramdisks shared among virtual machines

    • PRI3

  • driver for crypto hardware

    • PRI3

  • 'claw' network device driver

    • PRI3

Tell others about this page:

last edited 2004-12-20 03:31:33 by RikvanRiel