On Wed, Nov 19, 2014 at 3:23 PM, Linus Torvalds <torva...@linux-foundation.org> wrote: > On Wed, Nov 19, 2014 at 3:04 PM, Andy Lutomirski <l...@amacapital.net> wrote: >> >> Does that include nmi? I'm a bit afraid of touching that code. > > NMI is kind of special, since it's really not supposed to touch > 'current' or anything like that, and that's how we do preempt-count > (and that's where irq-count is) right now. > > I would prefer to have preempt_count be a percpu variable rather than > a per-thread one, but there are historical reasons for that horror. Oh > well. > >> It's certainly easy enough to bump irq_count in the paranoid entries. > > It definitely shouldn't be done from the assembly code. Usually it's > "irq_enter/exit()" that does it, but for NMI you'd presumably just do > it explicitly from do_nmi() or similar. But NMI really is nastier than > other cases, see above.
My only real objection is that it's going to be ugly and error prone. It'll have to be something like: if (!user_mode_vm(regs)) irq_enter(); ... if (!user_mode_vm(regs)) irq_exit(); because the whole point of this series is to make the IST entries not be atomic when they come from userspace. We can wrap this in an inline cond_ist_enter/cond_ist_exit or whatever, but still, blech. Tony already sent the follow-up patch that will make do_machine_check enable interrupts if it came from userspace. --Andy > > (That said, I thought we did it anyway, but now that I look I can't > find it. So I was probably just smoking something) > > Linus -- Andy Lutomirski AMA Capital Management, LLC -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/