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

2007-06-07 Thread Linus Torvalds
On Thu, 7 Jun 2007, Steven Rostedt wrote: > > I didn't realize that userspace was allowed to run with interrupts > disabled. It isn't, normally. You *can* try to do it by using iopl(), but it's not practical. It's certainly not practical to expect a page fault to not enable them again, since

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

2007-06-07 Thread Linus Torvalds
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

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

2007-06-07 Thread Steven Rostedt
On Thu, 2007-06-07 at 18:58 -0700, Andrew Morton wrote: > On Wed, 06 Jun 2007 23:34:04 -0400 > Interrupts got disabled here because do_page_fault() is an > interrupt-disabling trap, yes? Correct. > > The patch looks reasonable to me: a slight reduction in interrupt-off > latency when really wei

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

2007-06-07 Thread Andrew Morton
On Wed, 06 Jun 2007 23:34:04 -0400 Steven Rostedt <[EMAIL PROTECTED]> wrote: > This is a minor fix, but what is currently there is essentially wrong. > In do_page_fault, if the faulting address from user code happens to be > in kernel address space (int *p = (int*)-1; p = 0xbed;) then the > do_pa

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

2007-06-06 Thread Steven Rostedt
This is a minor fix, but what is currently there is essentially wrong. In do_page_fault, if the faulting address from user code happens to be in kernel address space (int *p = (int*)-1; p = 0xbed;) then the do_page_fault handler will jump over the local_irq_enable with the goto bad_area_nosemap