On 8/29/19 4:18 PM, Jakub Kicinski wrote:
On Thu, 29 Aug 2019 11:27:16 -0700, Shannon Nelson wrote:
+netdev_tx_t ionic_start_xmit(struct sk_buff *skb, struct net_device *netdev)
+{
+ u16 queue_index = skb_get_queue_mapping(skb);
+ struct ionic_lif *lif = netdev_priv(netdev);
+
On Fri, 30 Aug 2019 14:44:24 -0700, Shannon Nelson wrote:
> On 8/29/19 4:33 PM, Jakub Kicinski wrote:
> > On Thu, 29 Aug 2019 11:27:16 -0700, Shannon Nelson wrote:
> [...]
> > There's definitely a function for helping drivers which can't do full
> > TSO slice up the packet, but I can't find it
On 8/29/19 4:33 PM, Jakub Kicinski wrote:
On Thu, 29 Aug 2019 11:27:16 -0700, Shannon Nelson wrote:
+static int ionic_tx_tso(struct ionic_queue *q, struct sk_buff *skb)
+{
+ struct ionic_tx_stats *stats = q_to_tx_stats(q);
+ struct ionic_desc_info *abort = q->head;
+ struct dev
On Thu, 29 Aug 2019 11:27:16 -0700, Shannon Nelson wrote:
> +static int ionic_tx_tso(struct ionic_queue *q, struct sk_buff *skb)
> +{
> + struct ionic_tx_stats *stats = q_to_tx_stats(q);
> + struct ionic_desc_info *abort = q->head;
> + struct device *dev = q->lif->ionic->dev;
> + st
On Thu, 29 Aug 2019 11:27:16 -0700, Shannon Nelson wrote:
> +netdev_tx_t ionic_start_xmit(struct sk_buff *skb, struct net_device *netdev)
> +{
> + u16 queue_index = skb_get_queue_mapping(skb);
> + struct ionic_lif *lif = netdev_priv(netdev);
> + struct ionic_queue *q;
> + int ndescs
Add both the Tx and Rx queue setup and handling. The related
stats display comes later. Instead of using the generic napi
routines used by the slow-path commands, the Tx and Rx paths
are simplified and inlined in one file in order to get better
compiler optimizations.
Signed-off-by: Shannon Nels