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] [day] [month] [year] [list]
Message-ID: <9bc4a949b57342f284e55a5f3b44738b@SN2PR03MB061.namprd03.prod.outlook.com>
Date:	Wed, 27 Feb 2013 14:39:33 +0000
From:	KY Srinivasan <kys@...rosoft.com>
To:	KY Srinivasan <kys@...rosoft.com>,
	"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"devel@...uxdriverproject.org" <devel@...uxdriverproject.org>,
	"olaf@...fle.de" <olaf@...fle.de>,
	"apw@...onical.com" <apw@...onical.com>,
	"jasowang@...hat.com" <jasowang@...hat.com>,
	"hpa@...or.com" <hpa@...or.com>
Subject: RE: [PATCH 1/1] Drivers: hv: vmbus: Use the new infrastructure for
 delivering VMBUS interrupts

Greg,

Can this patch go in now. I checked Linus' tree and it looks like all the needed patches are all checked in.

Regards,

K. Y

> -----Original Message-----
> From: K. Y. Srinivasan [mailto:kys@...rosoft.com]
> Sent: Sunday, February 17, 2013 2:31 PM
> To: gregkh@...uxfoundation.org; linux-kernel@...r.kernel.org;
> devel@...uxdriverproject.org; olaf@...fle.de; apw@...onical.com;
> jasowang@...hat.com; hpa@...or.com
> Cc: KY Srinivasan
> Subject: [PATCH 1/1] Drivers: hv: vmbus: Use the new infrastructure for
> delivering VMBUS interrupts
> 
> Use the infrastructure for delivering VMBUS interrupts using a
> special vector. With this patch, we can now properly handle
> the VMBUS interrupts that can be delivered on any CPU. Also,
> turn on interrupt load balancing as well.
> 
> This patch requires the infrastructure that was implemented in the patch:
> X86: Handle Hyper-V vmbus interrupts as special hypervisor interrupts
> 
> Greg, Please apply this patch after 3.9-rc1.
> 
> Signed-off-by: K. Y. Srinivasan <kys@...rosoft.com>
> ---
>  drivers/hv/channel_mgmt.c |    2 +-
>  drivers/hv/hv.c           |    5 ++---
>  drivers/hv/vmbus_drv.c    |   11 +++++++----
>  3 files changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
> index 53a8600..ff1be16 100644
> --- a/drivers/hv/channel_mgmt.c
> +++ b/drivers/hv/channel_mgmt.c
> @@ -318,7 +318,7 @@ static u32 get_vp_index(uuid_le *type_guid)
>  		return 0;
>  	}
>  	cur_cpu = (++next_vp % max_cpus);
> -	return 0;
> +	return cur_cpu;
>  }
> 
>  /*
> diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
> index 1c5481d..7311589 100644
> --- a/drivers/hv/hv.c
> +++ b/drivers/hv/hv.c
> @@ -272,7 +272,7 @@ u16 hv_signal_event(void *con_id)
>   * retrieve the initialized message and event pages.  Otherwise, we create and
>   * initialize the message and event pages.
>   */
> -void hv_synic_init(void *irqarg)
> +void hv_synic_init(void *arg)
>  {
>  	u64 version;
>  	union hv_synic_simp simp;
> @@ -281,7 +281,6 @@ void hv_synic_init(void *irqarg)
>  	union hv_synic_scontrol sctrl;
>  	u64 vp_index;
> 
> -	u32 irq_vector = *((u32 *)(irqarg));
>  	int cpu = smp_processor_id();
> 
>  	if (!hv_context.hypercall_page)
> @@ -335,7 +334,7 @@ void hv_synic_init(void *irqarg)
>  	rdmsrl(HV_X64_MSR_SINT0 + VMBUS_MESSAGE_SINT,
> shared_sint.as_uint64);
> 
>  	shared_sint.as_uint64 = 0;
> -	shared_sint.vector = irq_vector; /* HV_SHARED_SINT_IDT_VECTOR +
> 0x20; */
> +	shared_sint.vector = HYPERVISOR_CALLBACK_VECTOR;
>  	shared_sint.masked = false;
>  	shared_sint.auto_eoi = true;
> 
> diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
> index cf19dfa..bf421e0 100644
> --- a/drivers/hv/vmbus_drv.c
> +++ b/drivers/hv/vmbus_drv.c
> @@ -36,6 +36,7 @@
>  #include <linux/kernel_stat.h>
>  #include <asm/hyperv.h>
>  #include <asm/hypervisor.h>
> +#include <asm/mshyperv.h>
>  #include "hyperv_vmbus.h"
> 
> 
> @@ -528,7 +529,6 @@ static void vmbus_flow_handler(unsigned int irq, struct
> irq_desc *desc)
>  static int vmbus_bus_init(int irq)
>  {
>  	int ret;
> -	unsigned int vector;
> 
>  	/* Hypervisor initialization...setup hypercall page..etc */
>  	ret = hv_init();
> @@ -558,13 +558,16 @@ static int vmbus_bus_init(int irq)
>  	 */
>  	irq_set_handler(irq, vmbus_flow_handler);
> 
> -	vector = IRQ0_VECTOR + irq;
> +	/*
> +	 * Register our interrupt handler.
> +	 */
> +	hv_register_vmbus_handler(irq, vmbus_isr);
> 
>  	/*
> -	 * Notify the hypervisor of our irq and
> +	 * Initialize the per-cpu interrupt state and
>  	 * connect to the host.
>  	 */
> -	on_each_cpu(hv_synic_init, (void *)&vector, 1);
> +	on_each_cpu(hv_synic_init, NULL, 1);
>  	ret = vmbus_connect();
>  	if (ret)
>  		goto err_irq;
> --
> 1.7.4.1
> 
> 


--
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