Re: [PATCH] enable interrupts in user path of page fault.





On Thu, 7 Jun 2007, Andrew Morton wrote:

Interrupts got disabled here because do_page_fault() is an
interrupt-disabling trap, yes?

Yes - and it has to be: we want to disable preemption and interrupts that
can fault on the vmalloc space, until we've at least saved away %cr2. We
had bugs in that area before.

The patch looks reasonable to me: a slight reduction in interrupt-off
latency when really weird things are happening.

I applied it as obviously correct.

The patch also breaks things, I think: if userspace is running with
interrupts disabled and tries to access kernel memory it will presently
whizz through the kernel without ever enabling interrupts. With this
change, the kernel will now enable interrupts, which is presumably not what
the application wanted.

Well, we *do* enable interrupts for real page faults anyway, and this
whole code just triggers for the case where we'd send a SIGSEGV. If some
silly app really thought it could do that with interrupts disabled, it was
wrong before too (we'd hit a reschedule point and enable them there
anyway).

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: 2.6.12 sound problem
    ... >>of obscure kernel parameters. ... Allocating PCI resources starting at 10000000 ... Using ACPI for IRQ routing ... Using CSCINT to route CSC interrupts to PCI ...
    (Linux-Kernel)
  • Re: Crash on network transfer
    ... > got a segmentation fault. ... A seg fault occurs in user land, a kernel Oops means the ... something fancy (with interrupts?), and then getting confused. ...
    (Fedora)
  • Re: [kerneloops] regression in 2.6.27 wrt "lock_page" and the "hwclock" program
    ... Subject: x86/mm: do not trigger a kernel warning if user-space disables interrupts and generates a page fault ...
    (Linux-Kernel)
  • Re: [PATCH] Documentation: Make fujitsu/frv/kernel-ABI.txt 80 columns wide
    ... -The internal FRV kernel ABI is not quite the same as the userspace ABI. ... -most of them do not have any scratch registers, thus requiring at least one general purpose ... +single-stepping will blithely go on stepping into things like interrupts. ... -to read and once to write), we don't actually disable interrupts at all if we don't have to. ...
    (Linux-Kernel)
  • How to avoid serial port buffer overruns?
    ... port buffer overruns quite easily if I use a baudrate high enough (I start ... Back when I was using the 2.4 kernel, ... (with disk I/O for example). ... 2/ How can I identify why the serial interrupts are delayed? ...
    (Linux-Kernel)