Re: [PATCH 03/15] hyperv: use standard bitops

2016-12-22 Thread Paolo Bonzini


On 21/12/2016 14:23, Roman Kagan wrote:
> On Wed, Dec 21, 2016 at 01:00:44PM +0100, Olaf Hering wrote:
>> On Tue, Dec 20, Roman Kagan wrote:
>>
>> Reverting commit 22356585712d ("staging: hv: use sync_bitops when
>> interacting with the hypervisor") is save because ...
>>
>>> -   sync_set_bit(channel->monitor_bit,
>>> +   set_bit(channel->monitor_bit,
> 
> It isn't indeed.  I didn't realize there was a UP case where it made a
> difference, and failed to locate the commit where it changed.
> 
> I'll drop this part, thanks.

Perhaps the sync_bitops should be renamed to virt_bitops.  This would
match virt_* memory barriers and would make their usage much more obvious.

Paolo


RE: [PATCH 03/15] hyperv: use standard bitops

2016-12-21 Thread KY Srinivasan


> -Original Message-
> From: Roman Kagan [mailto:rka...@virtuozzo.com]
> Sent: Tuesday, December 20, 2016 7:56 AM
> To: Paolo Bonzini ; Radim Krčmář
> ; KY Srinivasan ; Vitaly
> Kuznetsov 
> Cc: Thomas Gleixner ; Ingo Molnar
> ; H. Peter Anvin ; x...@kernel.org;
> Haiyang Zhang ; k...@vger.kernel.org; linux-
> ker...@vger.kernel.org; de...@linuxdriverproject.org; Denis V . Lunev
> ; Roman Kagan 
> Subject: [PATCH 03/15] hyperv: use standard bitops
>
No commit log?
 
> Signed-off-by: Roman Kagan 
> ---
>  drivers/hv/channel.c| 8 +++-
>  drivers/hv/connection.c | 9 +++--
>  2 files changed, 6 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
> index 5fb4c6d..f9df275 100644
> --- a/drivers/hv/channel.c
> +++ b/drivers/hv/channel.c
> @@ -49,15 +49,13 @@ void vmbus_setevent(struct vmbus_channel
> *channel)
>*/
>   if ((channel->offermsg.monitor_allocated) &&
>   (!channel->low_latency)) {
> - /* Each u32 represents 32 channels */
> - sync_set_bit(channel->offermsg.child_relid & 31,
> - (unsigned long *) vmbus_connection.send_int_page
> +
> - (channel->offermsg.child_relid >> 5));
> + set_bit(channel->offermsg.child_relid,
> + (unsigned long
> *)vmbus_connection.send_int_page);
>
What is the rationale for dropping the sync variant?
 
>   /* Get the child to parent monitor page */
>   monitorpage = vmbus_connection.monitor_pages[1];
> 
> - sync_set_bit(channel->monitor_bit,
> + set_bit(channel->monitor_bit,
>   (unsigned long *)&monitorpage->trigger_group
>   [channel->monitor_grp].pending);
> 
Same comment as before.
> diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
> index aaa2103..139b33e 100644
> --- a/drivers/hv/connection.c
> +++ b/drivers/hv/connection.c
> @@ -468,12 +468,9 @@ void vmbus_set_event(struct vmbus_channel
> *channel)
>  {
>   u32 child_relid = channel->offermsg.child_relid;
> 
> - if (!channel->is_dedicated_interrupt) {
> - /* Each u32 represents 32 channels */
> - sync_set_bit(child_relid & 31,
> - (unsigned long *)vmbus_connection.send_int_page
> +
> - (child_relid >> 5));
> - }
> + if (!channel->is_dedicated_interrupt)
> + set_bit(child_relid,
> + (unsigned long
> *)vmbus_connection.send_int_page);
> 
>   hv_do_hypercall(HVCALL_SIGNAL_EVENT, channel->sig_event,
> NULL);
>  }
> --
> 2.9.3



Re: [PATCH 03/15] hyperv: use standard bitops

2016-12-21 Thread Roman Kagan
On Wed, Dec 21, 2016 at 01:00:44PM +0100, Olaf Hering wrote:
> On Tue, Dec 20, Roman Kagan wrote:
> 
> Reverting commit 22356585712d ("staging: hv: use sync_bitops when
> interacting with the hypervisor") is save because ...
> 
> > -   sync_set_bit(channel->monitor_bit,
> > +   set_bit(channel->monitor_bit,

It isn't indeed.  I didn't realize there was a UP case where it made a
difference, and failed to locate the commit where it changed.

I'll drop this part, thanks.

Roman.


Re: [PATCH 03/15] hyperv: use standard bitops

2016-12-21 Thread Olaf Hering
On Tue, Dec 20, Roman Kagan wrote:

Reverting commit 22356585712d ("staging: hv: use sync_bitops when
interacting with the hypervisor") is save because ...

> - sync_set_bit(channel->monitor_bit,
> + set_bit(channel->monitor_bit,


Olaf


signature.asc
Description: PGP signature