* [PATCH]PM_QOS-to-use-handle-based-requests-network-update 3/5
@ 2009-12-01 21:33 mark gross
2009-12-01 23:58 ` [E1000-devel] " Allan, Bruce W
0 siblings, 1 reply; 4+ messages in thread
From: mark gross @ 2009-12-01 21:33 UTC (permalink / raw)
To: linux-pm; +Cc: lkml, e1000-devel
update to Ethernet driver dependencies on pm_qos WRT api change to use
handles instead of name strings.
--mgross
Signed-off-by: mark gross <mgross@linux.intel.com>
>From a72be3a717e474632cbb4281c5f3a433dfa2b0f8 Mon Sep 17 00:00:00 2001
From: mark gross <mgross@mgross-hp8510w.(none)>
Date: Tue, 1 Dec 2009 12:59:52 -0800
Subject: [PATCH 3/5] PM_QOS to use handle based requests network update
---
drivers/net/e1000e/netdev.c | 13 ++++++-------
drivers/net/igbvf/netdev.c | 5 +++--
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index fad8f9e..755c884 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -51,6 +51,7 @@
#define DRV_VERSION "1.0.2-k2"
char e1000e_driver_name[] = "e1000e";
const char e1000e_driver_version[] = DRV_VERSION;
+struct pm_qos_request_list *e1000e_driver_pm_qos_req;
static const struct e1000_info *e1000_info_tbl[] = {
[board_82571] = &e1000_82571_info,
@@ -2516,11 +2517,9 @@ static void e1000_configure_rx(struct e1000_adapter *adapter)
* With jumbo frames and early-receive enabled, excessive
* C4->C2 latencies result in dropped transactions.
*/
- pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY,
- e1000e_driver_name, 55);
+ pm_qos_update_request(e1000e_driver_pm_qos_req, 55);
} else {
- pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY,
- e1000e_driver_name,
+ pm_qos_update_request(e1000e_driver_pm_qos_req,
PM_QOS_DEFAULT_VALUE);
}
@@ -5417,8 +5416,8 @@ static int __init e1000_init_module(void)
printk(KERN_INFO "%s: Copyright (c) 1999-2008 Intel Corporation.\n",
e1000e_driver_name);
ret = pci_register_driver(&e1000_driver);
- pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, e1000e_driver_name,
- PM_QOS_DEFAULT_VALUE);
+ e1000e_driver_pm_qos_req = pm_qos_add_request(
+ PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
return ret;
}
@@ -5433,7 +5432,7 @@ module_init(e1000_init_module);
static void __exit e1000_exit_module(void)
{
pci_unregister_driver(&e1000_driver);
- pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, e1000e_driver_name);
+ pm_qos_remove_request(e1000e_driver_pm_qos_req);
}
module_exit(e1000_exit_module);
diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c
index 91024a3..0ba48d1 100644
--- a/drivers/net/igbvf/netdev.c
+++ b/drivers/net/igbvf/netdev.c
@@ -47,6 +47,7 @@
#define DRV_VERSION "1.0.0-k0"
char igbvf_driver_name[] = "igbvf";
const char igbvf_driver_version[] = DRV_VERSION;
+struct pm_qos_request_list *igbvf_driver_pm_qos_req;
static const char igbvf_driver_string[] =
"Intel(R) Virtual Function Network Driver";
static const char igbvf_copyright[] = "Copyright (c) 2009 Intel Corporation.";
@@ -2881,7 +2882,7 @@ static int __init igbvf_init_module(void)
printk(KERN_INFO "%s\n", igbvf_copyright);
ret = pci_register_driver(&igbvf_driver);
- pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, igbvf_driver_name,
+ igbvf_driver_pm_qos_req = pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY,
PM_QOS_DEFAULT_VALUE);
return ret;
@@ -2897,7 +2898,7 @@ module_init(igbvf_init_module);
static void __exit igbvf_exit_module(void)
{
pci_unregister_driver(&igbvf_driver);
- pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, igbvf_driver_name);
+ pm_qos_remove_request(igbvf_driver_pm_qos_req);
}
module_exit(igbvf_exit_module);
--
1.6.3.3
^ permalink raw reply related [flat|nested] 4+ messages in thread* RE: [E1000-devel] [PATCH]PM_QOS-to-use-handle-based-requests-network-update 3/5
2009-12-01 21:33 [PATCH]PM_QOS-to-use-handle-based-requests-network-update 3/5 mark gross
@ 2009-12-01 23:58 ` Allan, Bruce W
2009-12-03 21:02 ` mark gross
0 siblings, 1 reply; 4+ messages in thread
From: Allan, Bruce W @ 2009-12-01 23:58 UTC (permalink / raw)
To: mgross@linux.intel.com, linux-pm; +Cc: e1000-devel@lists.sourceforge.net, lkml
Thanks for doing this, but I have to NAK the e1000e changes as-is. Please resubmit against net-next-2.6 as there is already a commit in that tree which conflicts with this patch.
>-----Original Message-----
>From: mark gross [mailto:mgross@linux.intel.com]
>Sent: Tuesday, December 01, 2009 1:33 PM
>To: linux-pm
>Cc: e1000-devel@lists.sourceforge.net; lkml
>Subject: [E1000-devel] [PATCH]PM_QOS-to-use-handle-based-requests-network-
>update 3/5
>
>update to Ethernet driver dependencies on pm_qos WRT api change to use
>handles instead of name strings.
>
>--mgross
>
>Signed-off-by: mark gross <mgross@linux.intel.com>
>
>
>>From a72be3a717e474632cbb4281c5f3a433dfa2b0f8 Mon Sep 17 00:00:00 2001
>From: mark gross <mgross@mgross-hp8510w.(none)>
>Date: Tue, 1 Dec 2009 12:59:52 -0800
>Subject: [PATCH 3/5] PM_QOS to use handle based requests network update
>
>---
> drivers/net/e1000e/netdev.c | 13 ++++++-------
> drivers/net/igbvf/netdev.c | 5 +++--
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
>diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
>index fad8f9e..755c884 100644
>--- a/drivers/net/e1000e/netdev.c
>+++ b/drivers/net/e1000e/netdev.c
>@@ -51,6 +51,7 @@
> #define DRV_VERSION "1.0.2-k2"
> char e1000e_driver_name[] = "e1000e";
> const char e1000e_driver_version[] = DRV_VERSION;
>+struct pm_qos_request_list *e1000e_driver_pm_qos_req;
>
> static const struct e1000_info *e1000_info_tbl[] = {
> [board_82571] = &e1000_82571_info,
>@@ -2516,11 +2517,9 @@ static void e1000_configure_rx(struct e1000_adapter
>*adapter)
> * With jumbo frames and early-receive enabled, excessive
> * C4->C2 latencies result in dropped transactions.
> */
>- pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY,
>- e1000e_driver_name, 55);
>+ pm_qos_update_request(e1000e_driver_pm_qos_req, 55);
> } else {
>- pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY,
>- e1000e_driver_name,
>+ pm_qos_update_request(e1000e_driver_pm_qos_req,
> PM_QOS_DEFAULT_VALUE);
> }
>
>@@ -5417,8 +5416,8 @@ static int __init e1000_init_module(void)
> printk(KERN_INFO "%s: Copyright (c) 1999-2008 Intel Corporation.\n",
> e1000e_driver_name);
> ret = pci_register_driver(&e1000_driver);
>- pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, e1000e_driver_name,
>- PM_QOS_DEFAULT_VALUE);
>+ e1000e_driver_pm_qos_req = pm_qos_add_request(
>+ PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
>
> return ret;
> }
>@@ -5433,7 +5432,7 @@ module_init(e1000_init_module);
> static void __exit e1000_exit_module(void)
> {
> pci_unregister_driver(&e1000_driver);
>- pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY,
>e1000e_driver_name);
>+ pm_qos_remove_request(e1000e_driver_pm_qos_req);
> }
> module_exit(e1000_exit_module);
>
>diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c
>index 91024a3..0ba48d1 100644
>--- a/drivers/net/igbvf/netdev.c
>+++ b/drivers/net/igbvf/netdev.c
>@@ -47,6 +47,7 @@
> #define DRV_VERSION "1.0.0-k0"
> char igbvf_driver_name[] = "igbvf";
> const char igbvf_driver_version[] = DRV_VERSION;
>+struct pm_qos_request_list *igbvf_driver_pm_qos_req;
> static const char igbvf_driver_string[] =
> "Intel(R) Virtual Function Network Driver";
> static const char igbvf_copyright[] = "Copyright (c) 2009 Intel
>Corporation.";
>@@ -2881,7 +2882,7 @@ static int __init igbvf_init_module(void)
> printk(KERN_INFO "%s\n", igbvf_copyright);
>
> ret = pci_register_driver(&igbvf_driver);
>- pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, igbvf_driver_name,
>+ igbvf_driver_pm_qos_req = pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY,
> PM_QOS_DEFAULT_VALUE);
>
> return ret;
>@@ -2897,7 +2898,7 @@ module_init(igbvf_init_module);
> static void __exit igbvf_exit_module(void)
> {
> pci_unregister_driver(&igbvf_driver);
>- pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY,
>igbvf_driver_name);
>+ pm_qos_remove_request(igbvf_driver_pm_qos_req);
> }
> module_exit(igbvf_exit_module);
>
>--
>1.6.3.3
>
>
>--------------------------------------------------------------------------
>----
>Join us December 9, 2009 for the Red Hat Virtual Experience,
>a free event focused on virtualization and cloud computing.
>Attend in-depth sessions from your desk. Your couch. Anywhere.
>http://p.sf.net/sfu/redhat-sfdev2dev
>_______________________________________________
>E1000-devel mailing list
>E1000-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/e1000-devel
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [E1000-devel] [PATCH]PM_QOS-to-use-handle-based-requests-network-update 3/5
2009-12-01 23:58 ` [E1000-devel] " Allan, Bruce W
@ 2009-12-03 21:02 ` mark gross
0 siblings, 0 replies; 4+ messages in thread
From: mark gross @ 2009-12-03 21:02 UTC (permalink / raw)
To: Allan, Bruce W; +Cc: linux-pm, e1000-devel@lists.sourceforge.net, lkml
will do.
--mgross
On Tue, Dec 01, 2009 at 03:58:26PM -0800, Allan, Bruce W wrote:
> Thanks for doing this, but I have to NAK the e1000e changes as-is. Please resubmit against net-next-2.6 as there is already a commit in that tree which conflicts with this patch.
>
> >-----Original Message-----
> >From: mark gross [mailto:mgross@linux.intel.com]
> >Sent: Tuesday, December 01, 2009 1:33 PM
> >To: linux-pm
> >Cc: e1000-devel@lists.sourceforge.net; lkml
> >Subject: [E1000-devel] [PATCH]PM_QOS-to-use-handle-based-requests-network-
> >update 3/5
> >
> >update to Ethernet driver dependencies on pm_qos WRT api change to use
> >handles instead of name strings.
> >
> >--mgross
> >
> >Signed-off-by: mark gross <mgross@linux.intel.com>
> >
> >
> >>From a72be3a717e474632cbb4281c5f3a433dfa2b0f8 Mon Sep 17 00:00:00 2001
> >From: mark gross <mgross@mgross-hp8510w.(none)>
> >Date: Tue, 1 Dec 2009 12:59:52 -0800
> >Subject: [PATCH 3/5] PM_QOS to use handle based requests network update
> >
> >---
> > drivers/net/e1000e/netdev.c | 13 ++++++-------
> > drivers/net/igbvf/netdev.c | 5 +++--
> > 2 files changed, 9 insertions(+), 9 deletions(-)
> >
> >diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
> >index fad8f9e..755c884 100644
> >--- a/drivers/net/e1000e/netdev.c
> >+++ b/drivers/net/e1000e/netdev.c
> >@@ -51,6 +51,7 @@
> > #define DRV_VERSION "1.0.2-k2"
> > char e1000e_driver_name[] = "e1000e";
> > const char e1000e_driver_version[] = DRV_VERSION;
> >+struct pm_qos_request_list *e1000e_driver_pm_qos_req;
> >
> > static const struct e1000_info *e1000_info_tbl[] = {
> > [board_82571] = &e1000_82571_info,
> >@@ -2516,11 +2517,9 @@ static void e1000_configure_rx(struct e1000_adapter
> >*adapter)
> > * With jumbo frames and early-receive enabled, excessive
> > * C4->C2 latencies result in dropped transactions.
> > */
> >- pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY,
> >- e1000e_driver_name, 55);
> >+ pm_qos_update_request(e1000e_driver_pm_qos_req, 55);
> > } else {
> >- pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY,
> >- e1000e_driver_name,
> >+ pm_qos_update_request(e1000e_driver_pm_qos_req,
> > PM_QOS_DEFAULT_VALUE);
> > }
> >
> >@@ -5417,8 +5416,8 @@ static int __init e1000_init_module(void)
> > printk(KERN_INFO "%s: Copyright (c) 1999-2008 Intel Corporation.\n",
> > e1000e_driver_name);
> > ret = pci_register_driver(&e1000_driver);
> >- pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, e1000e_driver_name,
> >- PM_QOS_DEFAULT_VALUE);
> >+ e1000e_driver_pm_qos_req = pm_qos_add_request(
> >+ PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
> >
> > return ret;
> > }
> >@@ -5433,7 +5432,7 @@ module_init(e1000_init_module);
> > static void __exit e1000_exit_module(void)
> > {
> > pci_unregister_driver(&e1000_driver);
> >- pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY,
> >e1000e_driver_name);
> >+ pm_qos_remove_request(e1000e_driver_pm_qos_req);
> > }
> > module_exit(e1000_exit_module);
> >
> >diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c
> >index 91024a3..0ba48d1 100644
> >--- a/drivers/net/igbvf/netdev.c
> >+++ b/drivers/net/igbvf/netdev.c
> >@@ -47,6 +47,7 @@
> > #define DRV_VERSION "1.0.0-k0"
> > char igbvf_driver_name[] = "igbvf";
> > const char igbvf_driver_version[] = DRV_VERSION;
> >+struct pm_qos_request_list *igbvf_driver_pm_qos_req;
> > static const char igbvf_driver_string[] =
> > "Intel(R) Virtual Function Network Driver";
> > static const char igbvf_copyright[] = "Copyright (c) 2009 Intel
> >Corporation.";
> >@@ -2881,7 +2882,7 @@ static int __init igbvf_init_module(void)
> > printk(KERN_INFO "%s\n", igbvf_copyright);
> >
> > ret = pci_register_driver(&igbvf_driver);
> >- pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, igbvf_driver_name,
> >+ igbvf_driver_pm_qos_req = pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY,
> > PM_QOS_DEFAULT_VALUE);
> >
> > return ret;
> >@@ -2897,7 +2898,7 @@ module_init(igbvf_init_module);
> > static void __exit igbvf_exit_module(void)
> > {
> > pci_unregister_driver(&igbvf_driver);
> >- pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY,
> >igbvf_driver_name);
> >+ pm_qos_remove_request(igbvf_driver_pm_qos_req);
> > }
> > module_exit(igbvf_exit_module);
> >
> >--
> >1.6.3.3
> >
> >
> >--------------------------------------------------------------------------
> >----
> >Join us December 9, 2009 for the Red Hat Virtual Experience,
> >a free event focused on virtualization and cloud computing.
> >Attend in-depth sessions from your desk. Your couch. Anywhere.
> >http://p.sf.net/sfu/redhat-sfdev2dev
> >_______________________________________________
> >E1000-devel mailing list
> >E1000-devel@lists.sourceforge.net
> >https://lists.sourceforge.net/lists/listinfo/e1000-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH]PM_QOS-to-use-handle-based-requests-network-update 3/5
@ 2009-12-07 17:06 mark gross
0 siblings, 0 replies; 4+ messages in thread
From: mark gross @ 2009-12-07 17:06 UTC (permalink / raw)
To: linux-pm
Cc: lkml, aili, e1000-devel, bruce.w.allan, linux-wireless,
alsa-devel, tiwai
Signed-off-by: mark gross <mgross@linux.intel.com>
---
drivers/net/e1000e/netdev.c | 22 ++++++++++++----------
drivers/net/igbvf/netdev.c | 6 ++++--
include/linux/netdevice.h | 4 ++++
3 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index c3105c5..939f8f9 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -2518,12 +2518,12 @@ static void e1000_configure_rx(struct e1000_adapter *adapter)
* excessive C-state transition latencies result in
* dropped transactions.
*/
- pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY,
- adapter->netdev->name, 55);
+ pm_qos_update_request(
+ adapter->netdev->pm_qos_req, 55);
} else {
- pm_qos_update_requirement(PM_QOS_CPU_DMA_LATENCY,
- adapter->netdev->name,
- PM_QOS_DEFAULT_VALUE);
+ pm_qos_update_request(
+ adapter->netdev->pm_qos_req,
+ PM_QOS_DEFAULT_VALUE);
}
}
@@ -2833,8 +2833,8 @@ int e1000e_up(struct e1000_adapter *adapter)
/* DMA latency requirement to workaround early-receive/jumbo issue */
if (adapter->flags & FLAG_HAS_ERT)
- pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY,
- adapter->netdev->name,
+ adapter->netdev->pm_qos_req =
+ pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY,
PM_QOS_DEFAULT_VALUE);
/* hardware has been reset, we need to reload some things */
@@ -2897,9 +2897,11 @@ void e1000e_down(struct e1000_adapter *adapter)
e1000_clean_tx_ring(adapter);
e1000_clean_rx_ring(adapter);
- if (adapter->flags & FLAG_HAS_ERT)
- pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY,
- adapter->netdev->name);
+ if (adapter->flags & FLAG_HAS_ERT) {
+ pm_qos_remove_request(
+ adapter->netdev->pm_qos_req);
+ adapter->netdev->pm_qos_req = NULL;
+ }
/*
* TODO: for power management, we could drop the link and
diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c
index a127620..6751da8 100644
--- a/drivers/net/igbvf/netdev.c
+++ b/drivers/net/igbvf/netdev.c
@@ -47,6 +47,7 @@
#define DRV_VERSION "1.0.0-k0"
char igbvf_driver_name[] = "igbvf";
const char igbvf_driver_version[] = DRV_VERSION;
+struct pm_qos_request_list *igbvf_driver_pm_qos_req;
static const char igbvf_driver_string[] =
"Intel(R) Virtual Function Network Driver";
static const char igbvf_copyright[] = "Copyright (c) 2009 Intel Corporation.";
@@ -2912,7 +2913,7 @@ static int __init igbvf_init_module(void)
printk(KERN_INFO "%s\n", igbvf_copyright);
ret = pci_register_driver(&igbvf_driver);
- pm_qos_add_requirement(PM_QOS_CPU_DMA_LATENCY, igbvf_driver_name,
+ igbvf_driver_pm_qos_req = pm_qos_add_request(PM_QOS_CPU_DMA_LATENCY,
PM_QOS_DEFAULT_VALUE);
return ret;
@@ -2928,7 +2929,8 @@ module_init(igbvf_init_module);
static void __exit igbvf_exit_module(void)
{
pci_unregister_driver(&igbvf_driver);
- pm_qos_remove_requirement(PM_QOS_CPU_DMA_LATENCY, igbvf_driver_name);
+ pm_qos_remove_request(igbvf_driver_pm_qos_req);
+ igbvf_driver_pm_qos_req = NULL;
}
module_exit(igbvf_exit_module);
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index daf13d3..4437eb5 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -30,6 +30,7 @@
#include <linux/if_packet.h>
#ifdef __KERNEL__
+#include <linux/pm_qos_params.h>
#include <linux/timer.h>
#include <linux/delay.h>
#include <linux/mm.h>
@@ -693,6 +694,9 @@ struct net_device {
* the interface.
*/
char name[IFNAMSIZ];
+
+ struct pm_qos_request_list *pm_qos_req;
+
/* device name hash chain */
struct hlist_node name_hlist;
/* snmp alias */
--
1.6.3.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-12-07 17:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-01 21:33 [PATCH]PM_QOS-to-use-handle-based-requests-network-update 3/5 mark gross
2009-12-01 23:58 ` [E1000-devel] " Allan, Bruce W
2009-12-03 21:02 ` mark gross
-- strict thread matches above, loose matches on Subject: below --
2009-12-07 17:06 mark gross
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox