Skip to contentSkip to conversation

must-fix list for 2.6.0

DISCUSSION Andi Kleen 2 participants 4 messages Apr 30, 2003 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Andi Kleen

author
#1 lore raw

I found a new bad class of bugs (slowly working on fixing them, also present in 2.4)

Machine Check handlers use printk in an NMI like (ignoring cli) situation. This can deadlock on the console or low level character driver (serial, vga) locks. Not all MCEs are fatal (e.g. corrected ECC errors) and the kernel should be safely able to continue.

Need to buffer the printk in an atomic fashion (e.g. in a ring buffer managed with cmpxchg) and cause an self IPI that triggers an interrupt after the next sti. This is easy with x86/APIC mode, but difficult with PIC (the 8259 supports it in theory, but it's not clear that all clones in various chipsets do; also changing the programming may be risky). Fallback: pick it up with the next timer interrupt by adding a check there.

New entries for the x86-64 list
(actually I'm not sure they are all x86-64 specific, just that the bug has been seen there)

- 32bit core dumps do not dump 32bit SSE data currently. they should
- AT_GID/AT_UID ELF environment vector contains crap currently This breaks debugging of the shared linker for suid programs because ld.so always thinks it is suid/not called by root and ignores environment variables.
- NIS/ypbind breaks with an abort() in glibc. Only happens on 2.5, 2.4 is fine.
- need /proc/kcore access for kernel mappings that are outside vmalloc (in particular the kernel and the modules are special mappings on x86-64; other architectures have the same problem)
Best would be to put them in the vmalloc mappings list, but that requires some more fixes in other code that uses it. Also /proc/kcore seems to have some 64bit signedness bugs (patch for 2.4 exists)

Generic item:

- need to share the ioctl 32bit emulation handlers between ports. Pavel has a patch, but he's running into difficulties with merging it.

-Andi

#2 lore raw

Hi!

Quoted 4 lines

Generic item:

- need to share the ioctl 32bit emulation handlers between ports. Pavel has a patch, but he's running into difficulties with merging it.

Its in now.
Pavel

Signature · 2 lines
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
author
#3 lore raw
Quoted 8 lines · Pavel Machek

Hi!

Quoted 4 lines

Generic item:

- need to share the ioctl 32bit emulation handlers between ports. Pavel has a patch, but he's running into difficulties with merging it.

Its in now.

Yes and nothing compiles anymore because linux/compat_ioctl.h is missing.

And really the table merge is not enough - all the functions need to be shared too.

-Andi

#4 lore raw

Hi!

Quoted 9 lines
Quoted 6 lines
Quoted 4 lines

Generic item:

- need to share the ioctl 32bit emulation handlers between ports. Pavel has a patch, but he's running into difficulties with merging it.

Its in now.

Yes and nothing compiles anymore because linux/compat_ioctl.h is missing.

Oops, sorry. Patch is on its way to Linus.

Quoted 2 lines

And really the table merge is not enough - all the functions need to be shared too.

Yes, I know. And it is going to be quite a big task, but table merge is good first step.
Pavel

Signature · 2 lines
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]