* [PATCH 10/19] [repost] powerpc: move get_longbusy_msecs out of ehca/ehea
[not found] <20080612221535.GQ30916@linux.vnet.ibm.com>
@ 2008-06-12 22:18 ` Robert Jennings
2008-06-13 18:24 ` Brian King
0 siblings, 1 reply; 3+ messages in thread
From: Robert Jennings @ 2008-06-12 22:18 UTC (permalink / raw)
To: paulus
Cc: linuxppc-dev, netdev, Brian King, Santiago Leon, Nathan Fontenot,
David Darrington
From: Robert Jennings <rcj@linux.vnet.ibm.com>
In support of Cooperative Memory Overcommitment (CMO) this moves
get_longbusy_msecs() out of the ehca and ehea drivers and into the
architecture's hvcall header as plpar_get_longbusy_msecs. Some firmware
calls made in pSeries platform iommu code will need to share this
functionality.
Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>
---
I missed copying netdev on this patch the first time.
drivers/infiniband/hw/ehca/hcp_if.c | 24 ++----------------------
drivers/net/ehea/ehea_phyp.c | 4 ++--
drivers/net/ehea/ehea_phyp.h | 20 --------------------
include/asm-powerpc/hvcall.h | 27 +++++++++++++++++++++++++++
4 files changed, 31 insertions(+), 44 deletions(-)
Index: b/drivers/infiniband/hw/ehca/hcp_if.c
===================================================================
--- a/drivers/infiniband/hw/ehca/hcp_if.c
+++ b/drivers/infiniband/hw/ehca/hcp_if.c
@@ -90,26 +90,6 @@
static DEFINE_SPINLOCK(hcall_lock);
-static u32 get_longbusy_msecs(int longbusy_rc)
-{
- switch (longbusy_rc) {
- case H_LONG_BUSY_ORDER_1_MSEC:
- return 1;
- case H_LONG_BUSY_ORDER_10_MSEC:
- return 10;
- case H_LONG_BUSY_ORDER_100_MSEC:
- return 100;
- case H_LONG_BUSY_ORDER_1_SEC:
- return 1000;
- case H_LONG_BUSY_ORDER_10_SEC:
- return 10000;
- case H_LONG_BUSY_ORDER_100_SEC:
- return 100000;
- default:
- return 1;
- }
-}
-
static long ehca_plpar_hcall_norets(unsigned long opcode,
unsigned long arg1,
unsigned long arg2,
@@ -139,7 +119,7 @@ static long ehca_plpar_hcall_norets(unsi
spin_unlock_irqrestore(&hcall_lock, flags);
if (H_IS_LONG_BUSY(ret)) {
- sleep_msecs = get_longbusy_msecs(ret);
+ sleep_msecs = plpar_get_longbusy_msecs(ret);
msleep_interruptible(sleep_msecs);
continue;
}
@@ -192,7 +172,7 @@ static long ehca_plpar_hcall9(unsigned l
spin_unlock_irqrestore(&hcall_lock, flags);
if (H_IS_LONG_BUSY(ret)) {
- sleep_msecs = get_longbusy_msecs(ret);
+ sleep_msecs = plpar_get_longbusy_msecs(ret);
msleep_interruptible(sleep_msecs);
continue;
}
Index: b/drivers/net/ehea/ehea_phyp.c
===================================================================
--- a/drivers/net/ehea/ehea_phyp.c
+++ b/drivers/net/ehea/ehea_phyp.c
@@ -61,7 +61,7 @@ static long ehea_plpar_hcall_norets(unsi
arg5, arg6, arg7);
if (H_IS_LONG_BUSY(ret)) {
- sleep_msecs = get_longbusy_msecs(ret);
+ sleep_msecs = plpar_get_longbusy_msecs(ret);
msleep_interruptible(sleep_msecs);
continue;
}
@@ -102,7 +102,7 @@ static long ehea_plpar_hcall9(unsigned l
arg6, arg7, arg8, arg9);
if (H_IS_LONG_BUSY(ret)) {
- sleep_msecs = get_longbusy_msecs(ret);
+ sleep_msecs = plpar_get_longbusy_msecs(ret);
msleep_interruptible(sleep_msecs);
continue;
}
Index: b/drivers/net/ehea/ehea_phyp.h
===================================================================
--- a/drivers/net/ehea/ehea_phyp.h
+++ b/drivers/net/ehea/ehea_phyp.h
@@ -40,26 +40,6 @@
* hcp_* - structures, variables and functions releated to Hypervisor Calls
*/
-static inline u32 get_longbusy_msecs(int long_busy_ret_code)
-{
- switch (long_busy_ret_code) {
- case H_LONG_BUSY_ORDER_1_MSEC:
- return 1;
- case H_LONG_BUSY_ORDER_10_MSEC:
- return 10;
- case H_LONG_BUSY_ORDER_100_MSEC:
- return 100;
- case H_LONG_BUSY_ORDER_1_SEC:
- return 1000;
- case H_LONG_BUSY_ORDER_10_SEC:
- return 10000;
- case H_LONG_BUSY_ORDER_100_SEC:
- return 100000;
- default:
- return 1;
- }
-}
-
/* Number of pages which can be registered at once by H_REGISTER_HEA_RPAGES */
#define EHEA_MAX_RPAGE 512
Index: b/include/asm-powerpc/hvcall.h
===================================================================
--- a/include/asm-powerpc/hvcall.h
+++ b/include/asm-powerpc/hvcall.h
@@ -222,6 +222,33 @@
#ifndef __ASSEMBLY__
/**
+ * plpar_get_longbusy_msecs: - Return number of msecs for H_LONG_BUSY* response
+ * @long_busy_ret_code: The H_LONG_BUSY_* constant to process
+ *
+ * This returns the number of msecs that corresponds to an H_LONG_BUSY_*
+ * response from a plpar_hcall. If there is no match 1 is returned.
+ */
+static inline u32 plpar_get_longbusy_msecs(int long_busy_ret_code)
+{
+ switch (long_busy_ret_code) {
+ case H_LONG_BUSY_ORDER_1_MSEC:
+ return 1;
+ case H_LONG_BUSY_ORDER_10_MSEC:
+ return 10;
+ case H_LONG_BUSY_ORDER_100_MSEC:
+ return 100;
+ case H_LONG_BUSY_ORDER_1_SEC:
+ return 1000;
+ case H_LONG_BUSY_ORDER_10_SEC:
+ return 10000;
+ case H_LONG_BUSY_ORDER_100_SEC:
+ return 100000;
+ default:
+ return 1;
+ }
+}
+
+/**
* plpar_hcall_norets: - Make a pseries hypervisor call with no return arguments
* @opcode: The hypervisor call to make.
*
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 10/19] [repost] powerpc: move get_longbusy_msecs out of ehca/ehea
2008-06-12 22:18 ` [PATCH 10/19] [repost] powerpc: move get_longbusy_msecs out of ehca/ehea Robert Jennings
@ 2008-06-13 18:24 ` Brian King
2008-06-13 19:55 ` Jeff Garzik
0 siblings, 1 reply; 3+ messages in thread
From: Brian King @ 2008-06-13 18:24 UTC (permalink / raw)
To: Robert Jennings
Cc: paulus, linuxppc-dev, netdev, Santiago Leon, Nathan Fontenot,
David Darrington, Jeff Garzik
Jeff,
Regarding the patches Rob just posted here, we'd like to just take them
through the powerpc tree with your sign off since they are part of a
Power platform feature we are enabling.
Thanks,
Brian
Robert Jennings wrote:
> From: Robert Jennings <rcj@linux.vnet.ibm.com>
>
> In support of Cooperative Memory Overcommitment (CMO) this moves
> get_longbusy_msecs() out of the ehca and ehea drivers and into the
> architecture's hvcall header as plpar_get_longbusy_msecs. Some firmware
> calls made in pSeries platform iommu code will need to share this
> functionality.
>
> Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>
>
> ---
>
> I missed copying netdev on this patch the first time.
>
> drivers/infiniband/hw/ehca/hcp_if.c | 24 ++----------------------
> drivers/net/ehea/ehea_phyp.c | 4 ++--
> drivers/net/ehea/ehea_phyp.h | 20 --------------------
> include/asm-powerpc/hvcall.h | 27 +++++++++++++++++++++++++++
> 4 files changed, 31 insertions(+), 44 deletions(-)
>
> Index: b/drivers/infiniband/hw/ehca/hcp_if.c
> ===================================================================
> --- a/drivers/infiniband/hw/ehca/hcp_if.c
> +++ b/drivers/infiniband/hw/ehca/hcp_if.c
> @@ -90,26 +90,6 @@
>
> static DEFINE_SPINLOCK(hcall_lock);
>
> -static u32 get_longbusy_msecs(int longbusy_rc)
> -{
> - switch (longbusy_rc) {
> - case H_LONG_BUSY_ORDER_1_MSEC:
> - return 1;
> - case H_LONG_BUSY_ORDER_10_MSEC:
> - return 10;
> - case H_LONG_BUSY_ORDER_100_MSEC:
> - return 100;
> - case H_LONG_BUSY_ORDER_1_SEC:
> - return 1000;
> - case H_LONG_BUSY_ORDER_10_SEC:
> - return 10000;
> - case H_LONG_BUSY_ORDER_100_SEC:
> - return 100000;
> - default:
> - return 1;
> - }
> -}
> -
> static long ehca_plpar_hcall_norets(unsigned long opcode,
> unsigned long arg1,
> unsigned long arg2,
> @@ -139,7 +119,7 @@ static long ehca_plpar_hcall_norets(unsi
> spin_unlock_irqrestore(&hcall_lock, flags);
>
> if (H_IS_LONG_BUSY(ret)) {
> - sleep_msecs = get_longbusy_msecs(ret);
> + sleep_msecs = plpar_get_longbusy_msecs(ret);
> msleep_interruptible(sleep_msecs);
> continue;
> }
> @@ -192,7 +172,7 @@ static long ehca_plpar_hcall9(unsigned l
> spin_unlock_irqrestore(&hcall_lock, flags);
>
> if (H_IS_LONG_BUSY(ret)) {
> - sleep_msecs = get_longbusy_msecs(ret);
> + sleep_msecs = plpar_get_longbusy_msecs(ret);
> msleep_interruptible(sleep_msecs);
> continue;
> }
> Index: b/drivers/net/ehea/ehea_phyp.c
> ===================================================================
> --- a/drivers/net/ehea/ehea_phyp.c
> +++ b/drivers/net/ehea/ehea_phyp.c
> @@ -61,7 +61,7 @@ static long ehea_plpar_hcall_norets(unsi
> arg5, arg6, arg7);
>
> if (H_IS_LONG_BUSY(ret)) {
> - sleep_msecs = get_longbusy_msecs(ret);
> + sleep_msecs = plpar_get_longbusy_msecs(ret);
> msleep_interruptible(sleep_msecs);
> continue;
> }
> @@ -102,7 +102,7 @@ static long ehea_plpar_hcall9(unsigned l
> arg6, arg7, arg8, arg9);
>
> if (H_IS_LONG_BUSY(ret)) {
> - sleep_msecs = get_longbusy_msecs(ret);
> + sleep_msecs = plpar_get_longbusy_msecs(ret);
> msleep_interruptible(sleep_msecs);
> continue;
> }
> Index: b/drivers/net/ehea/ehea_phyp.h
> ===================================================================
> --- a/drivers/net/ehea/ehea_phyp.h
> +++ b/drivers/net/ehea/ehea_phyp.h
> @@ -40,26 +40,6 @@
> * hcp_* - structures, variables and functions releated to Hypervisor Calls
> */
>
> -static inline u32 get_longbusy_msecs(int long_busy_ret_code)
> -{
> - switch (long_busy_ret_code) {
> - case H_LONG_BUSY_ORDER_1_MSEC:
> - return 1;
> - case H_LONG_BUSY_ORDER_10_MSEC:
> - return 10;
> - case H_LONG_BUSY_ORDER_100_MSEC:
> - return 100;
> - case H_LONG_BUSY_ORDER_1_SEC:
> - return 1000;
> - case H_LONG_BUSY_ORDER_10_SEC:
> - return 10000;
> - case H_LONG_BUSY_ORDER_100_SEC:
> - return 100000;
> - default:
> - return 1;
> - }
> -}
> -
> /* Number of pages which can be registered at once by H_REGISTER_HEA_RPAGES */
> #define EHEA_MAX_RPAGE 512
>
> Index: b/include/asm-powerpc/hvcall.h
> ===================================================================
> --- a/include/asm-powerpc/hvcall.h
> +++ b/include/asm-powerpc/hvcall.h
> @@ -222,6 +222,33 @@
> #ifndef __ASSEMBLY__
>
> /**
> + * plpar_get_longbusy_msecs: - Return number of msecs for H_LONG_BUSY* response
> + * @long_busy_ret_code: The H_LONG_BUSY_* constant to process
> + *
> + * This returns the number of msecs that corresponds to an H_LONG_BUSY_*
> + * response from a plpar_hcall. If there is no match 1 is returned.
> + */
> +static inline u32 plpar_get_longbusy_msecs(int long_busy_ret_code)
> +{
> + switch (long_busy_ret_code) {
> + case H_LONG_BUSY_ORDER_1_MSEC:
> + return 1;
> + case H_LONG_BUSY_ORDER_10_MSEC:
> + return 10;
> + case H_LONG_BUSY_ORDER_100_MSEC:
> + return 100;
> + case H_LONG_BUSY_ORDER_1_SEC:
> + return 1000;
> + case H_LONG_BUSY_ORDER_10_SEC:
> + return 10000;
> + case H_LONG_BUSY_ORDER_100_SEC:
> + return 100000;
> + default:
> + return 1;
> + }
> +}
> +
> +/**
> * plpar_hcall_norets: - Make a pseries hypervisor call with no return arguments
> * @opcode: The hypervisor call to make.
> *
--
Brian King
Linux on Power Virtualization
IBM Linux Technology Center
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 10/19] [repost] powerpc: move get_longbusy_msecs out of ehca/ehea
2008-06-13 18:24 ` Brian King
@ 2008-06-13 19:55 ` Jeff Garzik
0 siblings, 0 replies; 3+ messages in thread
From: Jeff Garzik @ 2008-06-13 19:55 UTC (permalink / raw)
To: Brian King
Cc: Robert Jennings, paulus, linuxppc-dev, netdev, Santiago Leon,
Nathan Fontenot, David Darrington
Brian King wrote:
> Jeff,
>
> Regarding the patches Rob just posted here, we'd like to just take them
> through the powerpc tree with your sign off since they are part of a
> Power platform feature we are enabling.
>
> Thanks,
>
> Brian
>
> Robert Jennings wrote:
>> From: Robert Jennings <rcj@linux.vnet.ibm.com>
>>
>> In support of Cooperative Memory Overcommitment (CMO) this moves
>> get_longbusy_msecs() out of the ehca and ehea drivers and into the
>> architecture's hvcall header as plpar_get_longbusy_msecs. Some firmware
>> calls made in pSeries platform iommu code will need to share this
>> functionality.
>>
>> Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>
>>
>> ---
>>
>> I missed copying netdev on this patch the first time.
>>
>> drivers/infiniband/hw/ehca/hcp_if.c | 24 ++----------------------
>> drivers/net/ehea/ehea_phyp.c | 4 ++--
>> drivers/net/ehea/ehea_phyp.h | 20 --------------------
>> include/asm-powerpc/hvcall.h | 27 +++++++++++++++++++++++++++
>> 4 files changed, 31 insertions(+), 44 deletions(-)
ACK the quoted patch
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-06-13 19:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20080612221535.GQ30916@linux.vnet.ibm.com>
2008-06-12 22:18 ` [PATCH 10/19] [repost] powerpc: move get_longbusy_msecs out of ehca/ehea Robert Jennings
2008-06-13 18:24 ` Brian King
2008-06-13 19:55 ` Jeff Garzik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).