2.6.9-rc3-mm2 should-fix list
[Posted October 5, 2004 by corbet]
Not-ready features and speedups
===============================
Legend:
PRI1: We're totally lame if this doesn't get in
PRI2: Would be nice
PRI3: Not very important
drivers/block/
~~~~~~~~~~~~~~
drivers/char/rtc/
~~~~~~~~~~~~~~~~~
o rmk, trini: add support for alarms to the existing generic rtc driver.
PRI2
console drivers
~~~~~~~~~~~~~~~
(Pavel Machek <pavel@ucw.cz>)
o There are few must-fix bugs in cursor handling.
o Play with gpm selection for a while and your cursor gets corrupted with
random dots. Ouch.
device mapper
~~~~~~~~~~~~~
o ioctl interface cleanup patch is ready (redo the structure layouts)
PRI1
o A port of the 2.4 snapshot and mirror targets is in progress
PRI1
o 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/
~~~~~~~~~~~~~~~~~~~~~
(Jean Tourrilhes <jt@bougret.hpl.hp.com>)
o 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
o get more wireless drivers into the kernel. The most "integrable" drivers
at this point seem the NWN driver, Pavel's Spectrum driver.
PRI1
drivers/usb/gadget/
~~~~~~~~~~~~~~~~~~~
o 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/
~~~
o ext3 and ext2 block allocators have serious failure modes - interleaved
allocations. (Reservation patch in -mm).
PRI3
o Integrate Chris Mason's 2.4 reiserfs ordered data and data journaling
patches. They make reiserfs a lot safer.
Ordered: PRI2
data journalled: PRI3
o viro: convert more filesystems to use lib/parser.c for options.
PRI2
o aio: fs IO isn't async at present. suparna has restart patches, they're
in -mm. Need to get Ben to review/comment.
PRI1.
o drepper: various filesystems use ->pid wrongly
PRI1
kernel/
~~~~~~~
o rusty: Zippel's Reference count simplification. Tricky code, but cuts
about 120 lines from module.c. Patch exists, needs stressing.
PRI3
o 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
o kexec. Seems to work, was in -mm.
PRI3
o 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
mm/
~~~
net/
~~~~
(davem)
o 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:
http://www.mplsrc.com/
Anyways, an existing (crappy) implementation exists. I've almost
completed a rewrite, I should have something in the tree next week.
PRI1
o 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/
~~~~~~~~~~~~~~~~
o Lots of misc. cleanups, which are happening slowly.
PRI2
power management
~~~~~~~~~~~~~~~~
o Pat and Pavel disagree over swsusp. Need to sort that out.
PRI2
o Frame buffer, AGP, DRI restore.
PRI2
o XFree86 hooks
PRI2
o IDE suspend/resume without races (Ben is looking at this a little)
PRI2
o 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
~~~~~~
o viro: 64-bit dev_t (not a mustfix for 2.6.0). 32-bit dev_t is done, 64-bit
means extra work on nfsd/raid/etc.
o 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
o Kai: Introduce a sane, easy and standard way to build external modules
- make clean and make modules_install are both broken
PRI2
drivers
~~~~~~~
o Alan: Cardbus/PCMCIA requires all Russell's stuff is merged to do
multiheader right and so on
PRI1
drivers/acpi/
~~~~~~~~~~~~~
o 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
o 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
o mochel: ACPI suspend doesn't work. Important, not cricital. Pat is
working it.
PRI2
drivers/block/
~~~~~~~~~~~~~~
drivers/char/
~~~~~~~~~~~~~
drivers/ide/
~~~~~~~~~~~~
(Alan)
o IDE races, PIO problems, simplex, hotplug, taskfile.
PRI2
drivers/isdn/
~~~~~~~~~~~~~
(Kai, rmk)
o locking fixes, cleanups, adaption to recent APIs etc
PRI2
o 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/
~~~~~~~~~~~~
o 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/
~~~~~~~~~~~~~
o jejb: qlogic -
o Merge the feral driver. It covers all qlogic chips: 1020 all the way
up to 23xxx. http://linux-scsi.bkbits.net/scsi-isp-2.5
o qla2xxx: only for FC chips. Has significant build issues. hch
promises to send me a "must fix" list for this.
http://linux-scsi.bkbits.net/scsi-qla2xxx-2.5
PRI2
o 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)
o ALSA-fication of drivers, forward port 2.4 bugfixes
(Killing off OSS is 2.7 material)
PRI2
arch/i386/
~~~~~~~~~~
o davej: PAT support (for mtrr exhaustion w/ AGP)
PRI2
o 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
arch/x86_64/
~~~~~~~~~~~~
(Andi)
o need to coredump 64bit vsyscall code with dwarf2
PRI2
o move 64bit signal trampolines into vsyscall code and add dwarf2 for it.
(in progress)
PRI1
o describe kernel assembly with dwarf2 annotations for kgdb
PRI3
arch/alpha/
~~~~~~~~~~~
o rth: Ptrace writes are broken. This means we can't (reliably) set
breakpoints or modify variables from gdb.
PRI1
arch/arm/
~~~~~~~~~
o 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/
~~~~~~~~~~~~
o SH needs resyncing, as do some other ports. SH64 needs merging.
No impact on mainstream platforms hopefully.
PRI2
arch/s390/
~~~~~~~~~
drivers/s390/
~~~~~~~~~~~~~
o The 3270 console driver needs to be replaced with a working one
(prototype is there, needs to be finished).
PRI2
o Minor interface changes are pending in cio/ when the z990 machines are
out.
PRI2
o a block device driver for ramdisks shared among virtual machines
PRI3
o driver for crypto hardware
PRI3
o 'claw' network device driver
PRI3
(
Log in to post comments)