All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] net: add documentation for BQL helpers
@ 2013-09-06 10:58 Florian Fainelli
  2013-09-06 13:03 ` Eric Dumazet
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Florian Fainelli @ 2013-09-06 10:58 UTC (permalink / raw)
  To: netdev; +Cc: eric.dumazet, davem, Florian Fainelli

Provide a kernel-doc comment documentation for the BQL helpers:
- netdev_sent_queue
- netdev_completed_queue
- netdev_reset_queue

Similarly to how it is done for the other functions, the documentation
only covers the function operating on struct net_device and not struct
netdev_queue.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 include/linux/netdevice.h | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 8ed4ae9..ac36629 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2101,6 +2101,16 @@ static inline void netdev_tx_sent_queue(struct netdev_queue *dev_queue,
 #endif
 }
 
+/**
+ * 	netdev_sent_queue - report the number of bytes queued to hardware
+ * 	@dev: network device
+ * 	@bytes: number of bytes queued to the hardware device queue
+ *
+ * 	Report the number of bytes queued for sending/completion to the network
+ * 	device hardware queue. @bytes should specify the number of bytes which
+ * 	will be sent over the physical medium (without prepended/appended
+ * 	control blocks, FCS...)
+ */
 static inline void netdev_sent_queue(struct net_device *dev, unsigned int bytes)
 {
 	netdev_tx_sent_queue(netdev_get_tx_queue(dev, 0), bytes);
@@ -2130,6 +2140,16 @@ static inline void netdev_tx_completed_queue(struct netdev_queue *dev_queue,
 #endif
 }
 
+/**
+ * 	netdev_completed_queue - report bytes and packets completed by device
+ * 	@dev: network device
+ * 	@pkts: actual number of packets sent over the medium
+ * 	@bytes: actual number of bytes sent over the medium
+ *
+ * 	Report the number of bytes and packets transmitted by the network device
+ * 	hardware queue over the physical medium (without prepended/appended
+ * 	control blocks, FCS...)
+ */
 static inline void netdev_completed_queue(struct net_device *dev,
 					  unsigned int pkts, unsigned int bytes)
 {
@@ -2144,6 +2164,13 @@ static inline void netdev_tx_reset_queue(struct netdev_queue *q)
 #endif
 }
 
+/**
+ * 	netdev_reset_queue - reset the packets and bytes count of a network device
+ * 	@dev_queue: network device
+ *
+ * 	Reset the bytes and packet count of a network device and clear the
+ * 	software flow control OFF bit for this network device
+ */
 static inline void netdev_reset_queue(struct net_device *dev_queue)
 {
 	netdev_tx_reset_queue(netdev_get_tx_queue(dev_queue, 0));
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next] net: add documentation for BQL helpers
  2013-09-06 10:58 [PATCH net-next] net: add documentation for BQL helpers Florian Fainelli
@ 2013-09-06 13:03 ` Eric Dumazet
  2013-09-06 13:56   ` Florian Fainelli
  2013-09-06 15:18 ` Eric Dumazet
  2013-09-06 15:58 ` [PATCH net-next v2] " Florian Fainelli
  2 siblings, 1 reply; 7+ messages in thread
From: Eric Dumazet @ 2013-09-06 13:03 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: netdev, davem

On Fri, 2013-09-06 at 11:58 +0100, Florian Fainelli wrote:
> Provide a kernel-doc comment documentation for the BQL helpers:
> - netdev_sent_queue
> - netdev_completed_queue
> - netdev_reset_queue
> 
> Similarly to how it is done for the other functions, the documentation
> only covers the function operating on struct net_device and not struct
> netdev_queue.
> 
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
>  include/linux/netdevice.h | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
> 
> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
> index 8ed4ae9..ac36629 100644
> --- a/include/linux/netdevice.h
> +++ b/include/linux/netdevice.h
> @@ -2101,6 +2101,16 @@ static inline void netdev_tx_sent_queue(struct netdev_queue *dev_queue,
>  #endif
>  }
>  
> +/**
> + * 	netdev_sent_queue - report the number of bytes queued to hardware
> + * 	@dev: network device
> + * 	@bytes: number of bytes queued to the hardware device queue
> + *
> + * 	Report the number of bytes queued for sending/completion to the network
> + * 	device hardware queue. @bytes should specify the number of bytes which
> + * 	will be sent over the physical medium (without prepended/appended
> + * 	control blocks, FCS...)

There is no such requirement.

@bytes should be a good approximation, and should match
netdev_completed_queue() @bytes


If you think of TSO, we know that skb->len does not exactly matches
number of bytes on physical medium ( check qdisc_pkt_len_init() to see
how Qdisc layer tries to get better estimation )


> + */
>  static inline void netdev_sent_queue(struct net_device *dev, unsigned int bytes)
>  {
>  	netdev_tx_sent_queue(netdev_get_tx_queue(dev, 0), bytes);
> @@ -2130,6 +2140,16 @@ static inline void netdev_tx_completed_queue(struct netdev_queue *dev_queue,
>  #endif
>  }
>  
> +/**
> + * 	netdev_completed_queue - report bytes and packets completed by device
> + * 	@dev: network device
> + * 	@pkts: actual number of packets sent over the medium
> + * 	@bytes: actual number of bytes sent over the medium
> + *
> + * 	Report the number of bytes and packets transmitted by the network device
> + * 	hardware queue over the physical medium (without prepended/appended
> + * 	control blocks, FCS...)
> + */

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next] net: add documentation for BQL helpers
  2013-09-06 13:03 ` Eric Dumazet
@ 2013-09-06 13:56   ` Florian Fainelli
  0 siblings, 0 replies; 7+ messages in thread
From: Florian Fainelli @ 2013-09-06 13:56 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: netdev, David Miller

2013/9/6 Eric Dumazet <eric.dumazet@gmail.com>:
> On Fri, 2013-09-06 at 11:58 +0100, Florian Fainelli wrote:
>> Provide a kernel-doc comment documentation for the BQL helpers:
>> - netdev_sent_queue
>> - netdev_completed_queue
>> - netdev_reset_queue
>>
>> Similarly to how it is done for the other functions, the documentation
>> only covers the function operating on struct net_device and not struct
>> netdev_queue.
>>
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
>> ---
>>  include/linux/netdevice.h | 27 +++++++++++++++++++++++++++
>>  1 file changed, 27 insertions(+)
>>
>> diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
>> index 8ed4ae9..ac36629 100644
>> --- a/include/linux/netdevice.h
>> +++ b/include/linux/netdevice.h
>> @@ -2101,6 +2101,16 @@ static inline void netdev_tx_sent_queue(struct netdev_queue *dev_queue,
>>  #endif
>>  }
>>
>> +/**
>> + *   netdev_sent_queue - report the number of bytes queued to hardware
>> + *   @dev: network device
>> + *   @bytes: number of bytes queued to the hardware device queue
>> + *
>> + *   Report the number of bytes queued for sending/completion to the network
>> + *   device hardware queue. @bytes should specify the number of bytes which
>> + *   will be sent over the physical medium (without prepended/appended
>> + *   control blocks, FCS...)
>
> There is no such requirement.
>
> @bytes should be a good approximation, and should match
> netdev_completed_queue() @bytes
>
>
> If you think of TSO, we know that skb->len does not exactly matches
> number of bytes on physical medium ( check qdisc_pkt_len_init() to see
> how Qdisc layer tries to get better estimation )

Thanks Eric, do you also want me to update the comment above
netdev_completed_queue() or are you happy with it?
-- 
Florian

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next] net: add documentation for BQL helpers
  2013-09-06 10:58 [PATCH net-next] net: add documentation for BQL helpers Florian Fainelli
  2013-09-06 13:03 ` Eric Dumazet
@ 2013-09-06 15:18 ` Eric Dumazet
  2013-09-06 15:58 ` [PATCH net-next v2] " Florian Fainelli
  2 siblings, 0 replies; 7+ messages in thread
From: Eric Dumazet @ 2013-09-06 15:18 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: netdev, davem

On Fri, 2013-09-06 at 11:58 +0100, Florian Fainelli wrote:

>  
> +/**
> + * 	netdev_completed_queue - report bytes and packets completed by device
> + * 	@dev: network device
> + * 	@pkts: actual number of packets sent over the medium
> + * 	@bytes: actual number of bytes sent over the medium
> + *
> + * 	Report the number of bytes and packets transmitted by the network device
> + * 	hardware queue over the physical medium (without prepended/appended
> + * 	control blocks, FCS...)

Here, you should instead document that the @bytes must exactly match the
amount given in netdev_sent_queue(), or else BQL can panic.

(each queued skb accounts for X bytes on BQL, so at TX completion, same
X must be unaccounted)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH net-next v2] net: add documentation for BQL helpers
  2013-09-06 10:58 [PATCH net-next] net: add documentation for BQL helpers Florian Fainelli
  2013-09-06 13:03 ` Eric Dumazet
  2013-09-06 15:18 ` Eric Dumazet
@ 2013-09-06 15:58 ` Florian Fainelli
  2013-09-06 16:09   ` Eric Dumazet
  2013-09-06 18:47   ` David Miller
  2 siblings, 2 replies; 7+ messages in thread
From: Florian Fainelli @ 2013-09-06 15:58 UTC (permalink / raw)
  To: netdev; +Cc: eric.dumazet, davem, Florian Fainelli

Provide a kernel-doc comment documentation for the BQL helpers:
- netdev_sent_queue
- netdev_completed_queue
- netdev_reset_queue

Similarly to how it is done for the other functions, the documentation
only covers the function operating on struct net_device and not struct
netdev_queue.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
Change since v1:
- incorporate suggestsions from Eric Dumazet and just specify the exact
  match for netdev_sent_queue/netdev_completed_queue

 include/linux/netdevice.h | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 8ed4ae9..041b42a 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2101,6 +2101,15 @@ static inline void netdev_tx_sent_queue(struct netdev_queue *dev_queue,
 #endif
 }
 
+/**
+ * 	netdev_sent_queue - report the number of bytes queued to hardware
+ * 	@dev: network device
+ * 	@bytes: number of bytes queued to the hardware device queue
+ *
+ * 	Report the number of bytes queued for sending/completion to the network
+ * 	device hardware queue. @bytes should be a good approximation and should
+ * 	exactly match netdev_completed_queue() @bytes
+ */
 static inline void netdev_sent_queue(struct net_device *dev, unsigned int bytes)
 {
 	netdev_tx_sent_queue(netdev_get_tx_queue(dev, 0), bytes);
@@ -2130,6 +2139,16 @@ static inline void netdev_tx_completed_queue(struct netdev_queue *dev_queue,
 #endif
 }
 
+/**
+ * 	netdev_completed_queue - report bytes and packets completed by device
+ * 	@dev: network device
+ * 	@pkts: actual number of packets sent over the medium
+ * 	@bytes: actual number of bytes sent over the medium
+ *
+ * 	Report the number of bytes and packets transmitted by the network device
+ * 	hardware queue over the physical medium, @bytes must exactly match the
+ * 	@bytes amount passed to netdev_sent_queue()
+ */
 static inline void netdev_completed_queue(struct net_device *dev,
 					  unsigned int pkts, unsigned int bytes)
 {
@@ -2144,6 +2163,13 @@ static inline void netdev_tx_reset_queue(struct netdev_queue *q)
 #endif
 }
 
+/**
+ * 	netdev_reset_queue - reset the packets and bytes count of a network device
+ * 	@dev_queue: network device
+ *
+ * 	Reset the bytes and packet count of a network device and clear the
+ * 	software flow control OFF bit for this network device
+ */
 static inline void netdev_reset_queue(struct net_device *dev_queue)
 {
 	netdev_tx_reset_queue(netdev_get_tx_queue(dev_queue, 0));
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next v2] net: add documentation for BQL helpers
  2013-09-06 15:58 ` [PATCH net-next v2] " Florian Fainelli
@ 2013-09-06 16:09   ` Eric Dumazet
  2013-09-06 18:47   ` David Miller
  1 sibling, 0 replies; 7+ messages in thread
From: Eric Dumazet @ 2013-09-06 16:09 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: netdev, davem

On Fri, 2013-09-06 at 16:58 +0100, Florian Fainelli wrote:
> Provide a kernel-doc comment documentation for the BQL helpers:
> - netdev_sent_queue
> - netdev_completed_queue
> - netdev_reset_queue
> 
> Similarly to how it is done for the other functions, the documentation
> only covers the function operating on struct net_device and not struct
> netdev_queue.
> 
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
> Change since v1:
> - incorporate suggestsions from Eric Dumazet and just specify the exact
>   match for netdev_sent_queue/netdev_completed_queue

Acked-by: Eric Dumazet <edumazet@google.com>

Thanks

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next v2] net: add documentation for BQL helpers
  2013-09-06 15:58 ` [PATCH net-next v2] " Florian Fainelli
  2013-09-06 16:09   ` Eric Dumazet
@ 2013-09-06 18:47   ` David Miller
  1 sibling, 0 replies; 7+ messages in thread
From: David Miller @ 2013-09-06 18:47 UTC (permalink / raw)
  To: f.fainelli; +Cc: netdev, eric.dumazet

From: "Florian Fainelli" <f.fainelli@gmail.com>
Date: Fri, 6 Sep 2013 16:58:00 +0100

> Provide a kernel-doc comment documentation for the BQL helpers:
> - netdev_sent_queue
> - netdev_completed_queue
> - netdev_reset_queue
> 
> Similarly to how it is done for the other functions, the documentation
> only covers the function operating on struct net_device and not struct
> netdev_queue.
> 
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

Applied.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-09-06 18:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-06 10:58 [PATCH net-next] net: add documentation for BQL helpers Florian Fainelli
2013-09-06 13:03 ` Eric Dumazet
2013-09-06 13:56   ` Florian Fainelli
2013-09-06 15:18 ` Eric Dumazet
2013-09-06 15:58 ` [PATCH net-next v2] " Florian Fainelli
2013-09-06 16:09   ` Eric Dumazet
2013-09-06 18:47   ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.