From: Anatolij Gustschin <agust@denx.de>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Wolfgang Denk <wd@denx.de>, Detlev Zundel <dzu@denx.de>,
netdev@vger.kernel.org, linuxppc-dev@ozlabs.org,
"David S. Miller" <davem@davemloft.net>,
Piotr Ziecik <kosmo@semihalf.com>
Subject: Re: [net-next-2.6 PATCH v2 3/3] fs_enet: add FEC TX buffer alignment workaround for MPC5121
Date: Wed, 17 Feb 2010 22:31:04 +0100 [thread overview]
Message-ID: <20100217223104.41d91a83@wker> (raw)
In-Reply-To: <1266419836.3075.12.camel@edumazet-laptop>
On Wed, 17 Feb 2010 16:17:16 +0100
Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le mercredi 17 f=C3=A9vrier 2010 =C3=A0 15:55 +0100, Anatolij Gustschin a=
=C3=A9crit :
...
> > +static struct sk_buff *tx_skb_align_workaround(struct net_device *dev,
> > + struct sk_buff *skb)
> > +{
> > + struct sk_buff *new_skb;
> > + struct fs_enet_private *fep =3D netdev_priv(dev);
> > +
> > + /* Alloc new skb */
> > + new_skb =3D dev_alloc_skb(ENET_RX_FRSIZE + 4);
>=20
>=20
> ENET_RX_FRSIZE looks strange in TX path
>=20
> Why not using skb->len + 4 instead of ENET_RX_FRSIZE + 4 ?
I will fix it.
> > + if (!new_skb) {
> > + dev_warn(fep->dev, "Memory squeeze, dropping tx packet.\n");
>=20
> I am just wondering if this is ratelimited ?
Right, it should be ratelimited, will fix it, too.
...
> > static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *=
dev)
> > {
> > struct fs_enet_private *fep =3D netdev_priv(dev);
> > @@ -588,6 +619,19 @@ static int fs_enet_start_xmit(struct sk_buff *skb,=
struct net_device *dev)
> > u16 sc;
> > unsigned long flags;
> > =20
> > +#ifdef CONFIG_FS_ENET_MPC5121_FEC
> > + if (((unsigned long)skb->data) & 0x3) {
> > + skb =3D tx_skb_align_workaround(dev, skb);
> > + if (!skb) {
> > + /*
> > + * We have lost packet due to memory allocation error
> > + * in tx_skb_align_workaround(). Hopefully original
> > + * skb is still valid, so try transmit it later.
> > + */
>=20
> Could you define 'try to transmit later' ?
> Who is responsible to trigger this event ?
The function returns NETDEV_TX_BUSY here, skb is not
consumed and will be requeued by sch_direct_xmit(), so
it is scheduled for resending later.
Thanks,
Anatolij
WARNING: multiple messages have this Message-ID (diff)
From: Anatolij Gustschin <agust@denx.de>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: netdev@vger.kernel.org, linuxppc-dev@ozlabs.org,
"David S. Miller" <davem@davemloft.net>,
Grant Likely <grant.likely@secretlab.ca>,
Detlev Zundel <dzu@denx.de>, Wolfgang Denk <wd@denx.de>,
John Rigby <jcrigby@gmail.com>, Piotr Ziecik <kosmo@semihalf.com>
Subject: Re: [net-next-2.6 PATCH v2 3/3] fs_enet: add FEC TX buffer alignment workaround for MPC5121
Date: Wed, 17 Feb 2010 22:31:04 +0100 [thread overview]
Message-ID: <20100217223104.41d91a83@wker> (raw)
In-Reply-To: <1266419836.3075.12.camel@edumazet-laptop>
On Wed, 17 Feb 2010 16:17:16 +0100
Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le mercredi 17 février 2010 à 15:55 +0100, Anatolij Gustschin a écrit :
...
> > +static struct sk_buff *tx_skb_align_workaround(struct net_device *dev,
> > + struct sk_buff *skb)
> > +{
> > + struct sk_buff *new_skb;
> > + struct fs_enet_private *fep = netdev_priv(dev);
> > +
> > + /* Alloc new skb */
> > + new_skb = dev_alloc_skb(ENET_RX_FRSIZE + 4);
>
>
> ENET_RX_FRSIZE looks strange in TX path
>
> Why not using skb->len + 4 instead of ENET_RX_FRSIZE + 4 ?
I will fix it.
> > + if (!new_skb) {
> > + dev_warn(fep->dev, "Memory squeeze, dropping tx packet.\n");
>
> I am just wondering if this is ratelimited ?
Right, it should be ratelimited, will fix it, too.
...
> > static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)
> > {
> > struct fs_enet_private *fep = netdev_priv(dev);
> > @@ -588,6 +619,19 @@ static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)
> > u16 sc;
> > unsigned long flags;
> >
> > +#ifdef CONFIG_FS_ENET_MPC5121_FEC
> > + if (((unsigned long)skb->data) & 0x3) {
> > + skb = tx_skb_align_workaround(dev, skb);
> > + if (!skb) {
> > + /*
> > + * We have lost packet due to memory allocation error
> > + * in tx_skb_align_workaround(). Hopefully original
> > + * skb is still valid, so try transmit it later.
> > + */
>
> Could you define 'try to transmit later' ?
> Who is responsible to trigger this event ?
The function returns NETDEV_TX_BUSY here, skb is not
consumed and will be requeued by sch_direct_xmit(), so
it is scheduled for resending later.
Thanks,
Anatolij
next prev parent reply other threads:[~2010-02-17 21:31 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-17 14:55 [net-next-2.6 PATCH v2 0/3] Support for MPC512x FEC Anatolij Gustschin
2010-02-17 14:55 ` Anatolij Gustschin
2010-02-17 14:55 ` [net-next-2.6 PATCH v2 1/3] fs_enet: use dev_xxx instead of printk Anatolij Gustschin
2010-02-17 14:55 ` Anatolij Gustschin
2010-02-17 14:55 ` [net-next-2.6 PATCH v2 2/3] fs_enet: Add support for MPC512x to fs_enet driver Anatolij Gustschin
2010-02-17 14:55 ` Anatolij Gustschin
2010-02-17 14:55 ` [net-next-2.6 PATCH v2 3/3] fs_enet: add FEC TX buffer alignment workaround for MPC5121 Anatolij Gustschin
2010-02-17 14:55 ` Anatolij Gustschin
2010-02-17 15:13 ` Grant Likely
2010-02-17 15:13 ` Grant Likely
2010-02-17 15:17 ` Eric Dumazet
2010-02-17 15:17 ` Eric Dumazet
2010-02-17 21:31 ` Anatolij Gustschin [this message]
2010-02-17 21:31 ` Anatolij Gustschin
2010-02-17 22:08 ` [net-next-2.6 PATCH v3 " Anatolij Gustschin
2010-02-17 22:08 ` Anatolij Gustschin
2010-02-17 15:11 ` [net-next-2.6 PATCH v2 2/3] fs_enet: Add support for MPC512x to fs_enet driver Grant Likely
2010-02-17 15:11 ` Grant Likely
2010-02-22 11:37 ` [net-next-2.6 PATCH v2 0/3] Support for MPC512x FEC Anatolij Gustschin
2010-02-22 11:44 ` David Miller
2010-02-26 20:18 ` Anatolij Gustschin
2010-02-26 20:18 ` Anatolij Gustschin
2010-02-26 20:48 ` David Miller
2010-02-26 20:48 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100217223104.41d91a83@wker \
--to=agust@denx.de \
--cc=davem@davemloft.net \
--cc=dzu@denx.de \
--cc=eric.dumazet@gmail.com \
--cc=kosmo@semihalf.com \
--cc=linuxppc-dev@ozlabs.org \
--cc=netdev@vger.kernel.org \
--cc=wd@denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.