* [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL
@ 2007-09-07 23:41 Chris Snook
2007-09-07 23:47 ` [PATCH 1/2] atl1: add CONFIG_ATL1_EXPERIMENTAL to kconfig Chris Snook
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Chris Snook @ 2007-09-07 23:41 UTC (permalink / raw)
To: Jeff Garzik; +Cc: atl1-devel, Jay Cliburn, Chris Snook, netdev
The atl1 driver is currently marked EXPERIMENTAL, because a few supposedly
performance-enhancing features still have problems. When these features are
disabled, the driver is completely stable, fully functional, and performs well.
Patch 1/2 Creates the kconfig option CONFIG_ATL1_EXPERIMENTAL, and removes the
EXPERIMENTAL designation from CONFIG_ATL1
Patch 2/2 Wraps some currently-disabled features in #ifdef
CONFIG_ATL1_EXPERIMENTAL, so developers and testers can play with these features
more easily, and distributions will still get a fast, stable driver with
existing .config files.
We'll also be using this to wrap around various new features we'll be
experimenting with in coming months. Instead of using a half dozen different
kconfig options for each of them, like some drivers do, we'll just use this, and
make sure things are safe for everyone before we take them out of the
experimental wrapper.
-- Chris
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH 1/2] atl1: add CONFIG_ATL1_EXPERIMENTAL to kconfig
2007-09-07 23:41 [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL Chris Snook
@ 2007-09-07 23:47 ` Chris Snook
2007-09-07 23:52 ` [PATCH 2/2] atl1: wrap problematic optimizations in CONFIG_ATL1_EXPERIMENTAL Chris Snook
2007-09-07 23:54 ` [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL Jeff Garzik
2 siblings, 0 replies; 7+ messages in thread
From: Chris Snook @ 2007-09-07 23:47 UTC (permalink / raw)
To: Jeff Garzik; +Cc: atl1-devel, Jay Cliburn, netdev
From: Chris Snook <csnook@redhat.com>
Introduce Kconfig ATL1_EXPERIMENTAL to separate mature code from less mature
code in the atl1 driver, and remove EXPERIMENTAL designation for ATL1.
Signed-off-by: Chris Snook <csnook@redhat.com>
Acked-by: Jay Cliburn <jacliburn@bellsouth.net>
--- a/drivers/net/Kconfig 2007-09-04 10:12:38.000000000 -0400
+++ b/drivers/net/Kconfig 2007-09-04 10:37:34.000000000 -0400
@@ -2329,8 +2329,8 @@ config QLA3XXX
will be called qla3xxx.
config ATL1
- tristate "Attansic L1 Gigabit Ethernet support (EXPERIMENTAL)"
- depends on PCI && EXPERIMENTAL
+ tristate "Attansic L1 Gigabit Ethernet support"
+ depends on PCI
select CRC32
select MII
help
@@ -2339,6 +2339,16 @@ config ATL1
To compile this driver as a module, choose M here. The module
will be called atl1.
+config ATL1_EXPERIMENTAL
+ bool "atl1 experimental features"
+ depends on ATL1 && EXPERIMENTAL
+ help
+ This option enables various features that have not yet reached
+ the maturity of the rest of the atl1 driver. The driver will
+ still work fine without this option enabled.
+
+ If unsure, say N.
+
endif # NETDEV_1000
#
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] atl1: wrap problematic optimizations in CONFIG_ATL1_EXPERIMENTAL
2007-09-07 23:41 [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL Chris Snook
2007-09-07 23:47 ` [PATCH 1/2] atl1: add CONFIG_ATL1_EXPERIMENTAL to kconfig Chris Snook
@ 2007-09-07 23:52 ` Chris Snook
2007-09-08 0:21 ` [atl1-devel] " Luca
2007-09-07 23:54 ` [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL Jeff Garzik
2 siblings, 1 reply; 7+ messages in thread
From: Chris Snook @ 2007-09-07 23:52 UTC (permalink / raw)
To: Jeff Garzik; +Cc: atl1-devel, Jay Cliburn, netdev
From: Chris Snook <csnook@redhat.com>
Make certain problematic optimizations build-time configurable.
Signed-off-by: Chris Snook <csnook@redhat.com>
Acked-by: Jay Cliburn <jacliburn@bellsouth.net>
--- a/drivers/net/atl1/atl1_main.c 2007-09-04 10:12:38.000000000 -0400
+++ b/drivers/net/atl1/atl1_main.c 2007-09-04 11:23:26.000000000 -0400
@@ -2203,22 +2203,26 @@ static int __devinit atl1_probe(struct p
struct net_device *netdev;
struct atl1_adapter *adapter;
static int cards_found = 0;
- bool pci_using_64 = true;
+ bool pci_using_64 = false;
int err;
err = pci_enable_device(pdev);
if (err)
return err;
+#ifdef CONFIG_ATL1_EXPERIMENTAL
err = pci_set_dma_mask(pdev, DMA_64BIT_MASK);
+ if (!err) {
+ pci_using_64 = true;
+ goto dma_ok;
+ }
+#endif /* CONFIG_ATL1_EXPERIMENTAL */
+ err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
if (err) {
- err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
- if (err) {
- dev_err(&pdev->dev, "no usable DMA configuration\n");
- goto err_dma;
- }
- pci_using_64 = false;
+ dev_err(&pdev->dev, "no usable DMA configuration\n");
+ goto err_dma;
}
+dma_ok:
/* Mark all PCI regions associated with PCI device
* pdev as being reserved by owner atl1_driver_name
*/
@@ -2294,11 +2298,13 @@ static int __devinit atl1_probe(struct p
netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
/*
- * FIXME - Until tso performance gets fixed, disable the feature.
+ * TSO currently has performance problems,
+ * so let's disable it by default.
* Enable it with ethtool -K if desired.
*/
- /* netdev->features |= NETIF_F_TSO; */
-
+#ifdef CONFIG_ATL1_EXPERIMENTAL
+ netdev->features |= NETIF_F_TSO;
+#endif
if (pci_using_64)
netdev->features |= NETIF_F_HIGHDMA;
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [atl1-devel] [PATCH 2/2] atl1: wrap problematic optimizations in CONFIG_ATL1_EXPERIMENTAL
2007-09-07 23:52 ` [PATCH 2/2] atl1: wrap problematic optimizations in CONFIG_ATL1_EXPERIMENTAL Chris Snook
@ 2007-09-08 0:21 ` Luca
2007-09-08 0:27 ` Chris Snook
0 siblings, 1 reply; 7+ messages in thread
From: Luca @ 2007-09-08 0:21 UTC (permalink / raw)
To: Chris Snook; +Cc: Jeff Garzik, atl1-devel, netdev
On 9/8/07, Chris Snook <csnook@redhat.com> wrote:
> From: Chris Snook <csnook@redhat.com>
>
> Make certain problematic optimizations build-time configurable.
>
> Signed-off-by: Chris Snook <csnook@redhat.com>
> Acked-by: Jay Cliburn <jacliburn@bellsouth.net>
>
> --- a/drivers/net/atl1/atl1_main.c 2007-09-04 10:12:38.000000000 -0400
> +++ b/drivers/net/atl1/atl1_main.c 2007-09-04 11:23:26.000000000 -0400
> @@ -2203,22 +2203,26 @@ static int __devinit atl1_probe(struct p
> struct net_device *netdev;
> struct atl1_adapter *adapter;
> static int cards_found = 0;
> - bool pci_using_64 = true;
> + bool pci_using_64 = false;
> int err;
>
> err = pci_enable_device(pdev);
> if (err)
> return err;
>
> +#ifdef CONFIG_ATL1_EXPERIMENTAL
> err = pci_set_dma_mask(pdev, DMA_64BIT_MASK);
> + if (!err) {
> + pci_using_64 = true;
> + goto dma_ok;
> + }
> +#endif /* CONFIG_ATL1_EXPERIMENTAL */
This is more like CONFIG_ATL1_PLEASE_KILL_MY_MACHINE; I really don't
see the problem with just limiting the DMA mask:
- if you don't have physical mem over the 4GB boundary limiting DMA
doesn't make any difference
- if you have more than 4GB of memory the machine won't survive long without it
Luca
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [atl1-devel] [PATCH 2/2] atl1: wrap problematic optimizations in CONFIG_ATL1_EXPERIMENTAL
2007-09-08 0:21 ` [atl1-devel] " Luca
@ 2007-09-08 0:27 ` Chris Snook
0 siblings, 0 replies; 7+ messages in thread
From: Chris Snook @ 2007-09-08 0:27 UTC (permalink / raw)
To: Luca; +Cc: Jeff Garzik, atl1-devel, netdev
Luca wrote:
> On 9/8/07, Chris Snook <csnook@redhat.com> wrote:
>> From: Chris Snook <csnook@redhat.com>
>>
>> Make certain problematic optimizations build-time configurable.
>>
>> Signed-off-by: Chris Snook <csnook@redhat.com>
>> Acked-by: Jay Cliburn <jacliburn@bellsouth.net>
>>
>> --- a/drivers/net/atl1/atl1_main.c 2007-09-04 10:12:38.000000000 -0400
>> +++ b/drivers/net/atl1/atl1_main.c 2007-09-04 11:23:26.000000000 -0400
>> @@ -2203,22 +2203,26 @@ static int __devinit atl1_probe(struct p
>> struct net_device *netdev;
>> struct atl1_adapter *adapter;
>> static int cards_found = 0;
>> - bool pci_using_64 = true;
>> + bool pci_using_64 = false;
>> int err;
>>
>> err = pci_enable_device(pdev);
>> if (err)
>> return err;
>>
>> +#ifdef CONFIG_ATL1_EXPERIMENTAL
>> err = pci_set_dma_mask(pdev, DMA_64BIT_MASK);
>> + if (!err) {
>> + pci_using_64 = true;
>> + goto dma_ok;
>> + }
>> +#endif /* CONFIG_ATL1_EXPERIMENTAL */
>
> This is more like CONFIG_ATL1_PLEASE_KILL_MY_MACHINE; I really don't
> see the problem with just limiting the DMA mask:
> - if you don't have physical mem over the 4GB boundary limiting DMA
> doesn't make any difference
> - if you have more than 4GB of memory the machine won't survive long without it
Atheros is still working on this, and we plan to fix it. 64-bit DMA *should*
work. I just resubmitted your patch with the comment Jeff requested. I still
may want to revisit CONFIG_ATL1_EXPERIMENTAL soon when I start playing around
with more features.
-- Chris
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL
2007-09-07 23:41 [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL Chris Snook
2007-09-07 23:47 ` [PATCH 1/2] atl1: add CONFIG_ATL1_EXPERIMENTAL to kconfig Chris Snook
2007-09-07 23:52 ` [PATCH 2/2] atl1: wrap problematic optimizations in CONFIG_ATL1_EXPERIMENTAL Chris Snook
@ 2007-09-07 23:54 ` Jeff Garzik
2007-09-08 0:06 ` Chris Snook
2 siblings, 1 reply; 7+ messages in thread
From: Jeff Garzik @ 2007-09-07 23:54 UTC (permalink / raw)
To: Chris Snook; +Cc: atl1-devel, Jay Cliburn, netdev
Chris Snook wrote:
> The atl1 driver is currently marked EXPERIMENTAL, because a few
> supposedly performance-enhancing features still have problems. When
> these features are disabled, the driver is completely stable, fully
> functional, and performs well.
>
> Patch 1/2 Creates the kconfig option CONFIG_ATL1_EXPERIMENTAL, and
> removes the EXPERIMENTAL designation from CONFIG_ATL1
>
> Patch 2/2 Wraps some currently-disabled features in #ifdef
> CONFIG_ATL1_EXPERIMENTAL, so developers and testers can play with these
> features more easily, and distributions will still get a fast, stable
> driver with existing .config files.
>
> We'll also be using this to wrap around various new features we'll be
> experimenting with in coming months. Instead of using a half dozen
> different kconfig options for each of them, like some drivers do, we'll
> just use this, and make sure things are safe for everyone before we take
> them out of the experimental wrapper.
Well, I haven't received patch #2 yet, but in general a runtime switch
(module option?) is greatly preferred.
Jeff
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL
2007-09-07 23:54 ` [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL Jeff Garzik
@ 2007-09-08 0:06 ` Chris Snook
0 siblings, 0 replies; 7+ messages in thread
From: Chris Snook @ 2007-09-08 0:06 UTC (permalink / raw)
To: Jeff Garzik; +Cc: atl1-devel, Jay Cliburn, netdev
Jeff Garzik wrote:
> Chris Snook wrote:
>> The atl1 driver is currently marked EXPERIMENTAL, because a few
>> supposedly performance-enhancing features still have problems. When
>> these features are disabled, the driver is completely stable, fully
>> functional, and performs well.
>>
>> Patch 1/2 Creates the kconfig option CONFIG_ATL1_EXPERIMENTAL, and
>> removes the EXPERIMENTAL designation from CONFIG_ATL1
>>
>> Patch 2/2 Wraps some currently-disabled features in #ifdef
>> CONFIG_ATL1_EXPERIMENTAL, so developers and testers can play with
>> these features more easily, and distributions will still get a fast,
>> stable driver with existing .config files.
>>
>> We'll also be using this to wrap around various new features we'll be
>> experimenting with in coming months. Instead of using a half dozen
>> different kconfig options for each of them, like some drivers do,
>> we'll just use this, and make sure things are safe for everyone before
>> we take them out of the experimental wrapper.
>
> Well, I haven't received patch #2 yet, but in general a runtime switch
> (module option?) is greatly preferred.
>
> Jeff
Okay, I'll think about how we want to parameterize this. I don't want users
expecting development options to be around forever. I'll resubmit something
once I have more of these experimental features ready to submit.
-- Chris
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-09-08 0:27 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-07 23:41 [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL Chris Snook
2007-09-07 23:47 ` [PATCH 1/2] atl1: add CONFIG_ATL1_EXPERIMENTAL to kconfig Chris Snook
2007-09-07 23:52 ` [PATCH 2/2] atl1: wrap problematic optimizations in CONFIG_ATL1_EXPERIMENTAL Chris Snook
2007-09-08 0:21 ` [atl1-devel] " Luca
2007-09-08 0:27 ` Chris Snook
2007-09-07 23:54 ` [PATCH 0/2] atl1: Introduce CONFIG_ATL1_EXPERIMENTAL Jeff Garzik
2007-09-08 0:06 ` Chris Snook
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).