Re: [Xen-devel] [PATCH v5 2/4] x86/ldt: Make modify_ldt synchronous

2015-08-13 Thread H. Peter Anvin
On 07/27/2015 10:29 PM, Andy Lutomirski wrote: > modify_ldt has questionable locking and does not synchronize > threads. Improve it: redesign the locking and synchronize all > threads' LDTs using an IPI on all modifications. > > This will dramatically slow down modify_ldt in multithreaded > progr

Re: [Xen-devel] [PATCH v5 2/4] x86/ldt: Make modify_ldt synchronous

2015-07-31 Thread Boris Ostrovsky
On 07/30/2015 03:25 PM, Andy Lutomirski wrote: On Thu, Jul 30, 2015 at 11:35 AM, Boris Ostrovsky wrote: [OK]LDT entry 0 has AR 0x0040F200 and limit 0x [OK]LDT entry 0 is invalid [RUN] Cross-CPU LDT invalidation Segmentation fault (core dumped) That's not good. Can you backtr

Re: [Xen-devel] [PATCH v5 2/4] x86/ldt: Make modify_ldt synchronous

2015-07-30 Thread Andy Lutomirski
On Thu, Jul 30, 2015 at 11:35 AM, Boris Ostrovsky wrote: > On 07/30/2015 02:14 PM, Andy Lutomirski wrote: >> >> On Thu, Jul 30, 2015 at 10:56 AM, Boris Ostrovsky >> wrote: >>> >>> On 07/28/2015 01:29 AM, Andy Lutomirski wrote: >>> + +static inline void load_mm_ldt(struct mm_struct *mm)

Re: [Xen-devel] [PATCH v5 2/4] x86/ldt: Make modify_ldt synchronous

2015-07-30 Thread Boris Ostrovsky
On 07/30/2015 02:14 PM, Andy Lutomirski wrote: On Thu, Jul 30, 2015 at 10:56 AM, Boris Ostrovsky wrote: On 07/28/2015 01:29 AM, Andy Lutomirski wrote: + +static inline void load_mm_ldt(struct mm_struct *mm) +{ + struct ldt_struct *ldt; + DEBUG_LOCKS_WARN_ON(!irqs_disabled()); I

Re: [Xen-devel] [PATCH v5 2/4] x86/ldt: Make modify_ldt synchronous

2015-07-30 Thread Andy Lutomirski
On Thu, Jul 30, 2015 at 10:56 AM, Boris Ostrovsky wrote: > On 07/28/2015 01:29 AM, Andy Lutomirski wrote: > >> + >> +static inline void load_mm_ldt(struct mm_struct *mm) >> +{ >> + struct ldt_struct *ldt; >> + DEBUG_LOCKS_WARN_ON(!irqs_disabled()); > > > > I thought this was supposed t

Re: [Xen-devel] [PATCH v5 2/4] x86/ldt: Make modify_ldt synchronous

2015-07-30 Thread Boris Ostrovsky
On 07/28/2015 01:29 AM, Andy Lutomirski wrote: + +static inline void load_mm_ldt(struct mm_struct *mm) +{ + struct ldt_struct *ldt; + DEBUG_LOCKS_WARN_ON(!irqs_disabled()); I thought this was supposed to be checking preemptible()? -boris _

Re: [Xen-devel] [PATCH v5 2/4] x86/ldt: Make modify_ldt synchronous

2015-07-30 Thread Borislav Petkov
On Mon, Jul 27, 2015 at 10:29:39PM -0700, Andy Lutomirski wrote: > modify_ldt has questionable locking and does not synchronize > threads. Improve it: redesign the locking and synchronize all > threads' LDTs using an IPI on all modifications. > > This will dramatically slow down modify_ldt in mul

[Xen-devel] [PATCH v5 2/4] x86/ldt: Make modify_ldt synchronous

2015-07-27 Thread Andy Lutomirski
modify_ldt has questionable locking and does not synchronize threads. Improve it: redesign the locking and synchronize all threads' LDTs using an IPI on all modifications. This will dramatically slow down modify_ldt in multithreaded programs, but there shouldn't be any multithreaded programs that