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 for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:	Mon, 21 Mar 2016 15:21:04 +0100
From:	Juergen Gross <jgross@...e.com>
To:	Jan Beulich <JBeulich@...e.com>
Cc:	Jean Delvare <jdelvare@...e.com>, david.vrabel@...rix.com,
	Douglas_Warzecha@...l.com, pali.rohar@...il.com, jeremy@...p.org,
	peterz@...radead.org, x86@...nel.org, tglx@...utronix.de,
	virtualization@...ts.linux-foundation.org,
	xen-devel@...ts.xenproject.org, boris.ostrovsky@...cle.com,
	mingo@...hat.com, linux@...ck-us.net, rusty@...tcorp.com.au,
	chrisw@...s-sol.org, linux-kernel@...r.kernel.org,
	akataria@...are.com, hpa@...or.com
Subject: Re: [Xen-devel] [PATCH v2 5/6] virt, sched: add cpu pinning to
 smp_call_sync_on_phys_cpu()

On 21/03/16 14:42, Jan Beulich wrote:
>>>> On 21.03.16 at 13:24, <JGross@...e.com> wrote:
>> @@ -758,9 +759,14 @@ struct smp_sync_call_struct {
>>  static void smp_call_sync_callback(struct work_struct *work)
>>  {
>>  	struct smp_sync_call_struct *sscs;
>> +	unsigned int cpu = smp_processor_id();
> 
> So this obtains the vCPU number, yet ...
> 
>>  	sscs = container_of(work, struct smp_sync_call_struct, work);
>> +	preempt_disable();
>> +	hypervisor_pin_vcpu(cpu);
> 
> ... here you're supposed to pass a pCPU number.
> 
> Also don't you need to call smp_processor_id() after preempt_disable()?

No, I'm running on the workqueue bound to the specific (v)cpu and I'm
expecting this vcpu to be pinned to the same numbered pcpu.

preempt_disable() is just called to avoid scheduling of another thread
while the override pinning is active.


Juergen

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ