All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: LABBE Corentin <clabbe.montjoie@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org, robh+dt@kernel.org,
	mark.rutland@arm.com, maxime.ripard@free-electrons.com,
	wens@csie.org, linux@armlinux.org.uk, davem@davemloft.net,
	devicetree@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com
Subject: Re: [PATCH v2 1/5] ethernet: add sun8i-emac driver
Date: Fri, 29 Jul 2016 11:26:57 +0200	[thread overview]
Message-ID: <4552489.XcKoxjnXeP@wuerfel> (raw)
In-Reply-To: <20160728131826.GA7582@Red>

On Thursday, July 28, 2016 3:18:26 PM CEST LABBE Corentin wrote:
> 
> I will reworked locking and it seems that no locking is necessary.
> I have added the following comment about the locking strategy:
> 
> /* Locking strategy:
>  * RX queue does not need any lock since only sun8i_emac_poll() access it.
>  * (All other RX modifiers (ringparam/ndo_stop) disable NAPI and so sun8i_emac_poll())
>  * TX queue is handled by sun8i_emac_xmit(), sun8i_emac_complete_xmit() and sun8i_emac_tx_timeout()
>  * (All other RX modifiers (ringparam/ndo_stop) disable NAPI and stop queue)
>  *
>  * sun8i_emac_xmit() could fire only once (netif_tx_lock)
>  * sun8i_emac_complete_xmit() could fire only once (called from NAPI)
>  * sun8i_emac_tx_timeout() could fire only once (netif_tx_lock) and couldnt
>  * race with sun8i_emac_xmit (due to netif_tx_lock) and with sun8i_emac_complete_xmit which disable NAPI.
>  *
>  * So only sun8i_emac_xmit and sun8i_emac_complete_xmit could fire at the same time.
>  * But they never could modify the same descriptors:
>  * - sun8i_emac_complete_xmit() will modify only descriptors with empty status
>  * - sun8i_emac_xmit() will modify only descriptors set to DCLEAN
>  * Proper memory barriers ensure that descriptor set to DCLEAN could not be
>  * modified latter by sun8i_emac_complete_xmit().
>  * */

Sounds good, the comment is certainly very helpful here.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: LABBE Corentin <clabbe.montjoie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	mark.rutland-5wv7dgnIgG8@public.gmane.org,
	maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
	wens-jdAy2FN1RRM@public.gmane.org,
	linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: [PATCH v2 1/5] ethernet: add sun8i-emac driver
Date: Fri, 29 Jul 2016 11:26:57 +0200	[thread overview]
Message-ID: <4552489.XcKoxjnXeP@wuerfel> (raw)
In-Reply-To: <20160728131826.GA7582@Red>

On Thursday, July 28, 2016 3:18:26 PM CEST LABBE Corentin wrote:
> 
> I will reworked locking and it seems that no locking is necessary.
> I have added the following comment about the locking strategy:
> 
> /* Locking strategy:
>  * RX queue does not need any lock since only sun8i_emac_poll() access it.
>  * (All other RX modifiers (ringparam/ndo_stop) disable NAPI and so sun8i_emac_poll())
>  * TX queue is handled by sun8i_emac_xmit(), sun8i_emac_complete_xmit() and sun8i_emac_tx_timeout()
>  * (All other RX modifiers (ringparam/ndo_stop) disable NAPI and stop queue)
>  *
>  * sun8i_emac_xmit() could fire only once (netif_tx_lock)
>  * sun8i_emac_complete_xmit() could fire only once (called from NAPI)
>  * sun8i_emac_tx_timeout() could fire only once (netif_tx_lock) and couldnt
>  * race with sun8i_emac_xmit (due to netif_tx_lock) and with sun8i_emac_complete_xmit which disable NAPI.
>  *
>  * So only sun8i_emac_xmit and sun8i_emac_complete_xmit could fire at the same time.
>  * But they never could modify the same descriptors:
>  * - sun8i_emac_complete_xmit() will modify only descriptors with empty status
>  * - sun8i_emac_xmit() will modify only descriptors set to DCLEAN
>  * Proper memory barriers ensure that descriptor set to DCLEAN could not be
>  * modified latter by sun8i_emac_complete_xmit().
>  * */

Sounds good, the comment is certainly very helpful here.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/5] ethernet: add sun8i-emac driver
Date: Fri, 29 Jul 2016 11:26:57 +0200	[thread overview]
Message-ID: <4552489.XcKoxjnXeP@wuerfel> (raw)
In-Reply-To: <20160728131826.GA7582@Red>

On Thursday, July 28, 2016 3:18:26 PM CEST LABBE Corentin wrote:
> 
> I will reworked locking and it seems that no locking is necessary.
> I have added the following comment about the locking strategy:
> 
> /* Locking strategy:
>  * RX queue does not need any lock since only sun8i_emac_poll() access it.
>  * (All other RX modifiers (ringparam/ndo_stop) disable NAPI and so sun8i_emac_poll())
>  * TX queue is handled by sun8i_emac_xmit(), sun8i_emac_complete_xmit() and sun8i_emac_tx_timeout()
>  * (All other RX modifiers (ringparam/ndo_stop) disable NAPI and stop queue)
>  *
>  * sun8i_emac_xmit() could fire only once (netif_tx_lock)
>  * sun8i_emac_complete_xmit() could fire only once (called from NAPI)
>  * sun8i_emac_tx_timeout() could fire only once (netif_tx_lock) and couldnt
>  * race with sun8i_emac_xmit (due to netif_tx_lock) and with sun8i_emac_complete_xmit which disable NAPI.
>  *
>  * So only sun8i_emac_xmit and sun8i_emac_complete_xmit could fire at the same time.
>  * But they never could modify the same descriptors:
>  * - sun8i_emac_complete_xmit() will modify only descriptors with empty status
>  * - sun8i_emac_xmit() will modify only descriptors set to DCLEAN
>  * Proper memory barriers ensure that descriptor set to DCLEAN could not be
>  * modified latter by sun8i_emac_complete_xmit().
>  * */

Sounds good, the comment is certainly very helpful here.

	Arnd

  reply	other threads:[~2016-07-29  9:27 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-20  8:03 [PATCH v2 0/5] net-next: ethernet: add sun8i-emac driver LABBE Corentin
2016-07-20  8:03 ` LABBE Corentin
2016-07-20  8:03 ` LABBE Corentin
2016-07-20  8:03 ` [PATCH v2 1/5] " LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20  9:56   ` Arnd Bergmann
2016-07-20  9:56     ` Arnd Bergmann
2016-07-20  9:56     ` Arnd Bergmann
2016-07-28 13:18     ` LABBE Corentin
2016-07-28 13:18       ` LABBE Corentin
2016-07-28 13:18       ` LABBE Corentin
2016-07-29  9:26       ` Arnd Bergmann [this message]
2016-07-29  9:26         ` Arnd Bergmann
2016-07-29  9:26         ` Arnd Bergmann
2016-07-25 19:54   ` Maxime Ripard
2016-07-25 19:54     ` Maxime Ripard
2016-07-25 19:54     ` Maxime Ripard
2016-07-28 14:57     ` LABBE Corentin
2016-07-28 14:57       ` LABBE Corentin
2016-07-28 14:57       ` LABBE Corentin
2016-07-29 17:25       ` Maxime Ripard
2016-07-29 17:25         ` Maxime Ripard
2016-07-29 17:25         ` Maxime Ripard
2016-07-30  1:30         ` Chen-Yu Tsai
2016-07-30  1:30           ` Chen-Yu Tsai
2016-07-30  1:30           ` Chen-Yu Tsai
2016-07-30  7:34           ` Maxime Ripard
2016-07-30  7:34             ` Maxime Ripard
2016-07-30  7:34             ` Maxime Ripard
2016-07-29 10:12     ` Andre Przywara
2016-07-29 10:12       ` Andre Przywara
2016-07-29 10:12       ` Andre Przywara
2016-08-24 12:02     ` LABBE Corentin
2016-08-24 12:02       ` LABBE Corentin
2016-08-24 12:02       ` LABBE Corentin
2016-08-26 20:49       ` Maxime Ripard
2016-08-26 20:49         ` Maxime Ripard
2016-08-26 20:49         ` Maxime Ripard
2016-07-20  8:03 ` [PATCH v2 2/5] MAINTAINERS: Add myself as maintainers of sun8i-emac LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20  8:03 ` [PATCH v2 3/5] ARM: sun8i: dt: Add DT bindings documentation for Allwinner sun8i-emac LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20 19:15   ` Rob Herring
2016-07-20 19:15     ` Rob Herring
2016-07-20 19:15     ` Rob Herring
2016-07-28 13:21     ` LABBE Corentin
2016-07-28 13:21       ` LABBE Corentin
2016-07-28 13:21       ` LABBE Corentin
2016-07-21  7:55   ` Maxime Ripard
2016-07-21  7:55     ` Maxime Ripard
2016-07-21  7:55     ` Maxime Ripard
2016-07-28 13:40     ` LABBE Corentin
2016-07-28 13:40       ` LABBE Corentin
2016-07-28 13:40       ` LABBE Corentin
2016-07-28 18:49       ` Maxime Ripard
2016-07-28 18:49         ` Maxime Ripard
2016-07-28 18:49         ` Maxime Ripard
2016-07-29  8:15         ` LABBE Corentin
2016-07-29  8:15           ` LABBE Corentin
2016-07-29  8:15           ` LABBE Corentin
2016-07-29 18:12           ` Maxime Ripard
2016-07-29 18:12             ` Maxime Ripard
2016-07-29 18:12             ` Maxime Ripard
2016-07-20  8:03 ` [PATCH v2 4/5] ARM: dts: sun8i-h3: add sun8i-emac ethernet driver LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20  8:03 ` [PATCH v2 5/5] ARM: dts: sun8i: Enable sun8i-emac on the Orange PI PC LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-20  8:03   ` LABBE Corentin
2016-07-25 13:16 ` [PATCH v2 0/5] net-next: ethernet: add sun8i-emac driver paulo
2016-07-25 13:16   ` paulo at inutilfutil.com
2016-07-25 13:16   ` paulo

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=4552489.XcKoxjnXeP@wuerfel \
    --to=arnd@arndb.de \
    --cc=clabbe.montjoie@gmail.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=netdev@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=wens@csie.org \
    /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.