lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150122183913.GO17887@wotan.suse.de>
Date:	Thu, 22 Jan 2015 19:39:13 +0100
From:	"Luis R. Rodriguez" <mcgrof@...e.com>
To:	Steven Rostedt <rostedt@...dmis.org>
Cc:	Andrew Cooper <andrew.cooper3@...rix.com>,
	"Luis R. Rodriguez" <mcgrof@...not-panic.com>,
	david.vrabel@...rix.com, konrad.wilk@...cle.com,
	boris.ostrovsky@...cle.com, xen-devel@...ts.xenproject.org,
	kvm@...r.kernel.org, x86@...nel.org, linux-kernel@...r.kernel.org,
	Andy Lutomirski <luto@...capital.net>,
	Ingo Molnar <mingo@...hat.com>,
	Jan Beulich <JBeulich@...e.com>,
	"H. Peter Anvin" <hpa@...or.com>,
	Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	Borislav Petkov <bp@...e.de>
Subject: Re: [Xen-devel] [RFC v3 2/2] x86/xen: allow privcmd hypercalls to
	be preempted

On Thu, Jan 22, 2015 at 08:56:49AM -0500, Steven Rostedt wrote:
> On Thu, 22 Jan 2015 11:50:10 +0000
> Andrew Cooper <andrew.cooper3@...rix.com> wrote:
> 
> > On 22/01/15 02:17, Luis R. Rodriguez wrote:
> > > --- a/drivers/xen/events/events_base.c
> > > +++ b/drivers/xen/events/events_base.c
> > > @@ -32,6 +32,8 @@
> > >  #include <linux/slab.h>
> > >  #include <linux/irqnr.h>
> > >  #include <linux/pci.h>
> > > +#include <linux/sched.h>
> > > +#include <linux/kprobes.h>
> > >  
> > >  #ifdef CONFIG_X86
> > >  #include <asm/desc.h>
> > > @@ -1243,6 +1245,17 @@ void xen_evtchn_do_upcall(struct pt_regs
> > > *regs) set_irq_regs(old_regs);
> > >  }
> > >  
> > > +notrace void xen_end_upcall(struct pt_regs *regs)
> > > +{
> > > +	if (!xen_is_preemptible_hypercall(regs) ||
> > > +	    __this_cpu_read(xed_nesting_count))
> > > +		return;
> > > +
> > > +	if (_cond_resched())
> > > +		printk(KERN_DEBUG "xen hypercall preempted\n");
> > 
> > I wouldn't even put this at debug level.  On a large server with
> > plenty of domains being created/migrated/destroyed, it is quite
> > likely that a toolstack task might get preempted in this way.
> > 
> > I don't believe the message is of any practical use.
> > 
> 
> Why not make this a tracepoint? Then you can enable it only when you
> want to. As tracepoints are also hooks, you could add you own code that
> hooks to it and does a printk as well. The advantage of doing it via a
> tracepoint is that you can turn it on and off regardless of what the
> loglevel is set at.

This uses NOKPROBE_SYMBOL and notrace since based on Andy's advice
we are not confident that tracing and kprobes are safe to use in what
might be an extended RCU quiescent state (i.e. where we're outside
irq_enter and irq_exit).

> That is, if there is any practical use for that message. Tracing just
> sched_switch will give you the same info.

IMHO it may be more useful if we knew exactly what hypercalls were
being preempted but perhaps all that can be left as a secondary
exercise and for now I'll just nuke the print.

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ