* [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format
@ 2011-08-16 0:06 Ben Hutchings
2011-08-16 0:07 ` [PATCH net-next 2/5] ethtool: Specify what kind of coalescing struct ethtool_coalesce covers Ben Hutchings
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Ben Hutchings @ 2011-08-16 0:06 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Eli Cohen
This reorders and duplicates some wording, but should make no
substantive changes.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
---
include/linux/ethtool.h | 135 ++++++++++++++++++++++-------------------------
1 files changed, 64 insertions(+), 71 deletions(-)
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index c6e427a..be32dd0 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -117,99 +117,92 @@ struct ethtool_eeprom {
__u8 data[0];
};
-/* for configuring coalescing parameters of chip */
+/**
+ * struct ethtool_coalesce - coalescing parameters of chip
+ * @cmd: ETHTOOL_{G,S}COALESCE
+ * @rx_coalesce_usecs: How many usecs to delay an RX interrupt after
+ * a packet arrives. If 0, only @rx_max_coalesced_frames is used.
+ * @rx_max_coalesced_frames: How many packets to delay an RX interrupt
+ * after a packet arrives. If 0, only @rx_coalesce_usecs is used.
+ * @rx_coalesce_usecs_irq: Same as @rx_coalesce_usecs, except that
+ * this value applies while an IRQ is being serviced by the host.
+ * @rx_max_coalesced_frames_irq: Same as @rx_max_coalesced_frames,
+ * except that this value applies while an IRQ is being serviced
+ * by the host.
+ * @tx_coalesce_usecs: How many usecs to delay a TX interrupt after
+ * a packet is sent. If 0, only @tx_max_coalesced_frames
+ * is used.
+ * @tx_max_coalesced_frames: How many packets to delay a TX interrupt
+ * after a packet is sent. If 0, only @tx_coalesce_usecs is
+ * used.
+ * @tx_coalesce_usecs_irq: Same as @tx_coalesce_usecs, except that
+ * this value applies while an IRQ is being serviced by the host.
+ * @tx_max_coalesced_frames_irq: Same as @tx_max_coalesced_frames,
+ * except that this value applies while an IRQ is being serviced
+ * by the host.
+ * @stats_block_coalesce_usecs: How many usecs to delay in-memory
+ * statistics block updates. Some drivers do not have an
+ * in-memory statistic block, and in such cases this value is
+ * ignored. This value must not be zero.
+ * @use_adaptive_rx_coalesce: Enable adaptive RX coalescing.
+ * @use_adaptive_tx_coalesce: Enable adaptive TX coalescing.
+ * @pkt_rate_low: Threshold for low packet rate (packets per second).
+ * @rx_coalesce_usecs_low: How many usecs to delay an RX interrupt after
+ * a packet arrives, when the packet rate is below @pkt_rate_low.
+ * @rx_max_coalesced_frames_low: How many packets to delay an RX interrupt
+ * after a packet arrives, when the packet rate is below @pkt_rate_low.
+ * @tx_coalesce_usecs_low: How many usecs to delay a TX interrupt after
+ * a packet is sent, when the packet rate is below @pkt_rate_low.
+ * @tx_max_coalesced_frames_low: How many packets to delay a TX interrupt
+ * after a packet is sent, when the packet rate is below @pkt_rate_low.
+ * @pkt_rate_high: Threshold for high packet rate (packets per second).
+ * @rx_coalesce_usecs_high: How many usecs to delay an RX interrupt after
+ * a packet arrives, when the packet rate is above @pkt_rate_high.
+ * @rx_max_coalesced_frames_high: How many packets to delay an RX interrupt
+ * after a packet arrives, when the packet rate is above @pkt_rate_high.
+ * @tx_coalesce_usecs_high: How many usecs to delay a TX interrupt after
+ * a packet is sent, when the packet rate is above @pkt_rate_high.
+ * @tx_max_coalesced_frames_high: How many packets to delay a TX interrupt
+ * after a packet is sent, when the packet rate is above @pkt_rate_high.
+ * @rate_sample_interval: How often to do adaptive coalescing packet rate
+ * sampling, measured in seconds. Must not be zero.
+ *
+ * It is illegal to set both usecs and max frames to zero as this
+ * would cause interrupts to never be generated.
+ *
+ * Adaptive RX/TX coalescing is an algorithm implemented by some
+ * drivers to improve latency under low packet rates and improve
+ * throughput under high packet rates. Some drivers only implement
+ * one of RX or TX adaptive coalescing. Anything not implemented by
+ * the driver causes these values to be silently ignored.
+ *
+ * When the packet rate is below @pkt_rate_high but above
+ * @pkt_rate_low (both measured in packets per second) the
+ * normal {rx,tx}_* coalescing parameters are used.
+ */
struct ethtool_coalesce {
- __u32 cmd; /* ETHTOOL_{G,S}COALESCE */
-
- /* How many usecs to delay an RX interrupt after
- * a packet arrives. If 0, only rx_max_coalesced_frames
- * is used.
- */
+ __u32 cmd;
__u32 rx_coalesce_usecs;
-
- /* How many packets to delay an RX interrupt after
- * a packet arrives. If 0, only rx_coalesce_usecs is
- * used. It is illegal to set both usecs and max frames
- * to zero as this would cause RX interrupts to never be
- * generated.
- */
__u32 rx_max_coalesced_frames;
-
- /* Same as above two parameters, except that these values
- * apply while an IRQ is being serviced by the host. Not
- * all cards support this feature and the values are ignored
- * in that case.
- */
__u32 rx_coalesce_usecs_irq;
__u32 rx_max_coalesced_frames_irq;
-
- /* How many usecs to delay a TX interrupt after
- * a packet is sent. If 0, only tx_max_coalesced_frames
- * is used.
- */
__u32 tx_coalesce_usecs;
-
- /* How many packets to delay a TX interrupt after
- * a packet is sent. If 0, only tx_coalesce_usecs is
- * used. It is illegal to set both usecs and max frames
- * to zero as this would cause TX interrupts to never be
- * generated.
- */
__u32 tx_max_coalesced_frames;
-
- /* Same as above two parameters, except that these values
- * apply while an IRQ is being serviced by the host. Not
- * all cards support this feature and the values are ignored
- * in that case.
- */
__u32 tx_coalesce_usecs_irq;
__u32 tx_max_coalesced_frames_irq;
-
- /* How many usecs to delay in-memory statistics
- * block updates. Some drivers do not have an in-memory
- * statistic block, and in such cases this value is ignored.
- * This value must not be zero.
- */
__u32 stats_block_coalesce_usecs;
-
- /* Adaptive RX/TX coalescing is an algorithm implemented by
- * some drivers to improve latency under low packet rates and
- * improve throughput under high packet rates. Some drivers
- * only implement one of RX or TX adaptive coalescing. Anything
- * not implemented by the driver causes these values to be
- * silently ignored.
- */
__u32 use_adaptive_rx_coalesce;
__u32 use_adaptive_tx_coalesce;
-
- /* When the packet rate (measured in packets per second)
- * is below pkt_rate_low, the {rx,tx}_*_low parameters are
- * used.
- */
__u32 pkt_rate_low;
__u32 rx_coalesce_usecs_low;
__u32 rx_max_coalesced_frames_low;
__u32 tx_coalesce_usecs_low;
__u32 tx_max_coalesced_frames_low;
-
- /* When the packet rate is below pkt_rate_high but above
- * pkt_rate_low (both measured in packets per second) the
- * normal {rx,tx}_* coalescing parameters are used.
- */
-
- /* When the packet rate is (measured in packets per second)
- * is above pkt_rate_high, the {rx,tx}_*_high parameters are
- * used.
- */
__u32 pkt_rate_high;
__u32 rx_coalesce_usecs_high;
__u32 rx_max_coalesced_frames_high;
__u32 tx_coalesce_usecs_high;
__u32 tx_max_coalesced_frames_high;
-
- /* How often to do adaptive coalescing packet rate sampling,
- * measured in seconds. Must not be zero.
- */
__u32 rate_sample_interval;
};
--
1.7.4.4
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 2/5] ethtool: Specify what kind of coalescing struct ethtool_coalesce covers
2011-08-16 0:06 [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format Ben Hutchings
@ 2011-08-16 0:07 ` Ben Hutchings
2011-08-16 23:36 ` David Miller
2011-08-16 0:07 ` [PATCH net-next 3/5] ethtool: Correct description of 'max_coalesced_frames' fields Ben Hutchings
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Ben Hutchings @ 2011-08-16 0:07 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Eli Cohen
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
---
include/linux/ethtool.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index be32dd0..71d45a1 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -118,7 +118,7 @@ struct ethtool_eeprom {
};
/**
- * struct ethtool_coalesce - coalescing parameters of chip
+ * struct ethtool_coalesce - coalescing parameters for IRQs and stats updates
* @cmd: ETHTOOL_{G,S}COALESCE
* @rx_coalesce_usecs: How many usecs to delay an RX interrupt after
* a packet arrives. If 0, only @rx_max_coalesced_frames is used.
--
1.7.4.4
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 3/5] ethtool: Correct description of 'max_coalesced_frames' fields
2011-08-16 0:06 [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format Ben Hutchings
2011-08-16 0:07 ` [PATCH net-next 2/5] ethtool: Specify what kind of coalescing struct ethtool_coalesce covers Ben Hutchings
@ 2011-08-16 0:07 ` Ben Hutchings
2011-08-16 23:36 ` David Miller
2011-08-16 0:08 ` [PATCH net-next 4/5] ethtool: Explicitly state the exit condition for interrupt coalescing Ben Hutchings
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Ben Hutchings @ 2011-08-16 0:07 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Eli Cohen
The current descriptions state that these fields specify 'How many
packets to delay ... after a packet ...' which implies that the
hardware should wait for (max_coalesced_frames + 1) completions before
generating an interrupt. It is also stated that setting both this
field and the corresponding 'coalesce_usecs' field to 0 is invalid.
Together, this implies that the hardware must always be configured
to delay a completion IRQ for at least 1 usec or 1 more completion.
I believe that the addition of 1 is not intended, and David Miller
confirms that the original implementation (in tg3) does not do this.
Clarify the descriptions of these fields to avoid this interpretation.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
---
include/linux/ethtool.h | 26 +++++++++++++-------------
1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 71d45a1..18059ca 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -122,8 +122,8 @@ struct ethtool_eeprom {
* @cmd: ETHTOOL_{G,S}COALESCE
* @rx_coalesce_usecs: How many usecs to delay an RX interrupt after
* a packet arrives. If 0, only @rx_max_coalesced_frames is used.
- * @rx_max_coalesced_frames: How many packets to delay an RX interrupt
- * after a packet arrives. If 0, only @rx_coalesce_usecs is used.
+ * @rx_max_coalesced_frames: Maximum number of packets to receive
+ * before an RX interrupt. If 0, only @rx_coalesce_usecs is used.
* @rx_coalesce_usecs_irq: Same as @rx_coalesce_usecs, except that
* this value applies while an IRQ is being serviced by the host.
* @rx_max_coalesced_frames_irq: Same as @rx_max_coalesced_frames,
@@ -132,9 +132,9 @@ struct ethtool_eeprom {
* @tx_coalesce_usecs: How many usecs to delay a TX interrupt after
* a packet is sent. If 0, only @tx_max_coalesced_frames
* is used.
- * @tx_max_coalesced_frames: How many packets to delay a TX interrupt
- * after a packet is sent. If 0, only @tx_coalesce_usecs is
- * used.
+ * @tx_max_coalesced_frames: Maximum number of packets to be sent
+ * before a TX interrupt. If 0, only @tx_coalesce_usecs is
+ * used.
* @tx_coalesce_usecs_irq: Same as @tx_coalesce_usecs, except that
* this value applies while an IRQ is being serviced by the host.
* @tx_max_coalesced_frames_irq: Same as @tx_max_coalesced_frames,
@@ -149,21 +149,21 @@ struct ethtool_eeprom {
* @pkt_rate_low: Threshold for low packet rate (packets per second).
* @rx_coalesce_usecs_low: How many usecs to delay an RX interrupt after
* a packet arrives, when the packet rate is below @pkt_rate_low.
- * @rx_max_coalesced_frames_low: How many packets to delay an RX interrupt
- * after a packet arrives, when the packet rate is below @pkt_rate_low.
+ * @rx_max_coalesced_frames_low: Maximum number of packets to be received
+ * before an RX interrupt, when the packet rate is below @pkt_rate_low.
* @tx_coalesce_usecs_low: How many usecs to delay a TX interrupt after
* a packet is sent, when the packet rate is below @pkt_rate_low.
- * @tx_max_coalesced_frames_low: How many packets to delay a TX interrupt
- * after a packet is sent, when the packet rate is below @pkt_rate_low.
+ * @tx_max_coalesced_frames_low: Maximum nuumber of packets to be sent before
+ * a TX interrupt, when the packet rate is below @pkt_rate_low.
* @pkt_rate_high: Threshold for high packet rate (packets per second).
* @rx_coalesce_usecs_high: How many usecs to delay an RX interrupt after
* a packet arrives, when the packet rate is above @pkt_rate_high.
- * @rx_max_coalesced_frames_high: How many packets to delay an RX interrupt
- * after a packet arrives, when the packet rate is above @pkt_rate_high.
+ * @rx_max_coalesced_frames_high: Maximum number of packets to be received
+ * before an RX interrupt, when the packet rate is above @pkt_rate_high.
* @tx_coalesce_usecs_high: How many usecs to delay a TX interrupt after
* a packet is sent, when the packet rate is above @pkt_rate_high.
- * @tx_max_coalesced_frames_high: How many packets to delay a TX interrupt
- * after a packet is sent, when the packet rate is above @pkt_rate_high.
+ * @tx_max_coalesced_frames_high: Maximum number of packets to be sent before
+ * a TX interrupt, when the packet rate is above @pkt_rate_high.
* @rate_sample_interval: How often to do adaptive coalescing packet rate
* sampling, measured in seconds. Must not be zero.
*
--
1.7.4.4
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 4/5] ethtool: Explicitly state the exit condition for interrupt coalescing
2011-08-16 0:06 [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format Ben Hutchings
2011-08-16 0:07 ` [PATCH net-next 2/5] ethtool: Specify what kind of coalescing struct ethtool_coalesce covers Ben Hutchings
2011-08-16 0:07 ` [PATCH net-next 3/5] ethtool: Correct description of 'max_coalesced_frames' fields Ben Hutchings
@ 2011-08-16 0:08 ` Ben Hutchings
2011-08-16 23:36 ` David Miller
2011-08-16 0:09 ` [PATCH net-next 5/5] ethtool: Note common alternate " Ben Hutchings
2011-08-16 23:36 ` [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format David Miller
4 siblings, 1 reply; 10+ messages in thread
From: Ben Hutchings @ 2011-08-16 0:08 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Eli Cohen
Also explicitly state how to disable interrupt coalescing.
Remove the now-redundant text from field descriptions.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
---
include/linux/ethtool.h | 19 +++++++++++--------
1 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 18059ca..42378b3 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -121,20 +121,18 @@ struct ethtool_eeprom {
* struct ethtool_coalesce - coalescing parameters for IRQs and stats updates
* @cmd: ETHTOOL_{G,S}COALESCE
* @rx_coalesce_usecs: How many usecs to delay an RX interrupt after
- * a packet arrives. If 0, only @rx_max_coalesced_frames is used.
+ * a packet arrives.
* @rx_max_coalesced_frames: Maximum number of packets to receive
- * before an RX interrupt. If 0, only @rx_coalesce_usecs is used.
+ * before an RX interrupt.
* @rx_coalesce_usecs_irq: Same as @rx_coalesce_usecs, except that
* this value applies while an IRQ is being serviced by the host.
* @rx_max_coalesced_frames_irq: Same as @rx_max_coalesced_frames,
* except that this value applies while an IRQ is being serviced
* by the host.
* @tx_coalesce_usecs: How many usecs to delay a TX interrupt after
- * a packet is sent. If 0, only @tx_max_coalesced_frames
- * is used.
+ * a packet is sent.
* @tx_max_coalesced_frames: Maximum number of packets to be sent
- * before a TX interrupt. If 0, only @tx_coalesce_usecs is
- * used.
+ * before a TX interrupt.
* @tx_coalesce_usecs_irq: Same as @tx_coalesce_usecs, except that
* this value applies while an IRQ is being serviced by the host.
* @tx_max_coalesced_frames_irq: Same as @tx_max_coalesced_frames,
@@ -167,8 +165,13 @@ struct ethtool_eeprom {
* @rate_sample_interval: How often to do adaptive coalescing packet rate
* sampling, measured in seconds. Must not be zero.
*
- * It is illegal to set both usecs and max frames to zero as this
- * would cause interrupts to never be generated.
+ * Each pair of (usecs, max_frames) fields specifies this exit
+ * condition for interrupt coalescing:
+ * (usecs > 0 && time_since_first_completion >= usecs) ||
+ * (max_frames > 0 && completed_frames >= max_frames)
+ * It is illegal to set both usecs and max_frames to zero as this
+ * would cause interrupts to never be generated. To disable
+ * coalescing, set usecs = 0 and max_frames = 1.
*
* Adaptive RX/TX coalescing is an algorithm implemented by some
* drivers to improve latency under low packet rates and improve
--
1.7.4.4
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH net-next 5/5] ethtool: Note common alternate exit condition for interrupt coalescing
2011-08-16 0:06 [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format Ben Hutchings
` (2 preceding siblings ...)
2011-08-16 0:08 ` [PATCH net-next 4/5] ethtool: Explicitly state the exit condition for interrupt coalescing Ben Hutchings
@ 2011-08-16 0:09 ` Ben Hutchings
2011-08-16 23:36 ` David Miller
2011-08-16 23:36 ` [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format David Miller
4 siblings, 1 reply; 10+ messages in thread
From: Ben Hutchings @ 2011-08-16 0:09 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Eli Cohen
Many implementations ignore the value of max_frames and do not
treat usecs == 0 as special. Document this as deprecated.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
---
include/linux/ethtool.h | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 42378b3..3829712 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -173,6 +173,12 @@ struct ethtool_eeprom {
* would cause interrupts to never be generated. To disable
* coalescing, set usecs = 0 and max_frames = 1.
*
+ * Some implementations ignore the value of max_frames and use the
+ * condition:
+ * time_since_first_completion >= usecs
+ * This is deprecated. Drivers for hardware that does not support
+ * counting completions should validate that max_frames == !rx_usecs.
+ *
* Adaptive RX/TX coalescing is an algorithm implemented by some
* drivers to improve latency under low packet rates and improve
* throughput under high packet rates. Some drivers only implement
--
1.7.4.4
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format
2011-08-16 0:06 [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format Ben Hutchings
` (3 preceding siblings ...)
2011-08-16 0:09 ` [PATCH net-next 5/5] ethtool: Note common alternate " Ben Hutchings
@ 2011-08-16 23:36 ` David Miller
4 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2011-08-16 23:36 UTC (permalink / raw)
To: bhutchings; +Cc: netdev, eli
From: Ben Hutchings <bhutchings@solarflare.com>
Date: Tue, 16 Aug 2011 01:06:20 +0100
> This reorders and duplicates some wording, but should make no
> substantive changes.
>
> Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Applied.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net-next 2/5] ethtool: Specify what kind of coalescing struct ethtool_coalesce covers
2011-08-16 0:07 ` [PATCH net-next 2/5] ethtool: Specify what kind of coalescing struct ethtool_coalesce covers Ben Hutchings
@ 2011-08-16 23:36 ` David Miller
0 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2011-08-16 23:36 UTC (permalink / raw)
To: bhutchings; +Cc: netdev, eli
From: Ben Hutchings <bhutchings@solarflare.com>
Date: Tue, 16 Aug 2011 01:07:15 +0100
> Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Applied.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net-next 3/5] ethtool: Correct description of 'max_coalesced_frames' fields
2011-08-16 0:07 ` [PATCH net-next 3/5] ethtool: Correct description of 'max_coalesced_frames' fields Ben Hutchings
@ 2011-08-16 23:36 ` David Miller
0 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2011-08-16 23:36 UTC (permalink / raw)
To: bhutchings; +Cc: netdev, eli
From: Ben Hutchings <bhutchings@solarflare.com>
Date: Tue, 16 Aug 2011 01:07:47 +0100
> The current descriptions state that these fields specify 'How many
> packets to delay ... after a packet ...' which implies that the
> hardware should wait for (max_coalesced_frames + 1) completions before
> generating an interrupt. It is also stated that setting both this
> field and the corresponding 'coalesce_usecs' field to 0 is invalid.
> Together, this implies that the hardware must always be configured
> to delay a completion IRQ for at least 1 usec or 1 more completion.
>
> I believe that the addition of 1 is not intended, and David Miller
> confirms that the original implementation (in tg3) does not do this.
> Clarify the descriptions of these fields to avoid this interpretation.
>
> Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Applied.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net-next 4/5] ethtool: Explicitly state the exit condition for interrupt coalescing
2011-08-16 0:08 ` [PATCH net-next 4/5] ethtool: Explicitly state the exit condition for interrupt coalescing Ben Hutchings
@ 2011-08-16 23:36 ` David Miller
0 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2011-08-16 23:36 UTC (permalink / raw)
To: bhutchings; +Cc: netdev, eli
From: Ben Hutchings <bhutchings@solarflare.com>
Date: Tue, 16 Aug 2011 01:08:37 +0100
> Also explicitly state how to disable interrupt coalescing.
>
> Remove the now-redundant text from field descriptions.
>
> Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Applied.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net-next 5/5] ethtool: Note common alternate exit condition for interrupt coalescing
2011-08-16 0:09 ` [PATCH net-next 5/5] ethtool: Note common alternate " Ben Hutchings
@ 2011-08-16 23:36 ` David Miller
0 siblings, 0 replies; 10+ messages in thread
From: David Miller @ 2011-08-16 23:36 UTC (permalink / raw)
To: bhutchings; +Cc: netdev, eli
From: Ben Hutchings <bhutchings@solarflare.com>
Date: Tue, 16 Aug 2011 01:09:22 +0100
> Many implementations ignore the value of max_frames and do not
> treat usecs == 0 as special. Document this as deprecated.
>
> Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Applied.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2011-08-16 23:37 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-16 0:06 [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format Ben Hutchings
2011-08-16 0:07 ` [PATCH net-next 2/5] ethtool: Specify what kind of coalescing struct ethtool_coalesce covers Ben Hutchings
2011-08-16 23:36 ` David Miller
2011-08-16 0:07 ` [PATCH net-next 3/5] ethtool: Correct description of 'max_coalesced_frames' fields Ben Hutchings
2011-08-16 23:36 ` David Miller
2011-08-16 0:08 ` [PATCH net-next 4/5] ethtool: Explicitly state the exit condition for interrupt coalescing Ben Hutchings
2011-08-16 23:36 ` David Miller
2011-08-16 0:09 ` [PATCH net-next 5/5] ethtool: Note common alternate " Ben Hutchings
2011-08-16 23:36 ` David Miller
2011-08-16 23:36 ` [PATCH net-next 1/5] ethtool: Reformat struct ethtool_coalesce comments into kernel-doc format David Miller
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).