2023-06-14 17:52:08

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH net resend] net: qca_spi: Avoid high load if QCA7000 is not available

On Wed, Jun 14, 2023 at 01:17:14PM +0200, Stefan Wahren wrote:
> In case the QCA7000 is not available via SPI (e.g. in reset),
> the driver will cause a high load. The reason for this is
> that the synchronization is never finished and schedule()
> is never called. Since the synchronization is not timing
> critical, it's safe to drop this from the scheduling condition.
>
> Signed-off-by: Stefan Wahren <[email protected]>
> Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for
> QCA7000")

Hi Stefan,

the Fixes should be on a single line.

Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for QCA7000")

> ---
> drivers/net/ethernet/qualcomm/qca_spi.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c
> b/drivers/net/ethernet/qualcomm/qca_spi.c

Likewise, the above two lines should be a single line.
Unfortunately it seems that because it is not git doesn't apply
this patch, which creates problems for automation linked to patchwork.

I think it would be best to repost after resolving these minor issues.

> index bba1947792ea16..90f18ea4c28ba1 100644
> --- a/drivers/net/ethernet/qualcomm/qca_spi.c
> +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
> @@ -582,8 +582,7 @@ qcaspi_spi_thread(void *data)
> while (!kthread_should_stop()) {
> set_current_state(TASK_INTERRUPTIBLE);
> if ((qca->intr_req == qca->intr_svc) &&
> - (qca->txr.skb[qca->txr.head] == NULL) &&
> - (qca->sync == QCASPI_SYNC_READY))
> + !qca->txr.skb[qca->txr.head])
> schedule();
>
> set_current_state(TASK_RUNNING);
>

--
pw-bot: cr



2023-06-14 21:10:37

by Stefan Wahren

[permalink] [raw]
Subject: Re: [PATCH net resend] net: qca_spi: Avoid high load if QCA7000 is not available

Hi Simon,

Am 14.06.23 um 18:58 schrieb Simon Horman:
> On Wed, Jun 14, 2023 at 01:17:14PM +0200, Stefan Wahren wrote:
>> In case the QCA7000 is not available via SPI (e.g. in reset),
>> the driver will cause a high load. The reason for this is
>> that the synchronization is never finished and schedule()
>> is never called. Since the synchronization is not timing
>> critical, it's safe to drop this from the scheduling condition.
>>
>> Signed-off-by: Stefan Wahren <[email protected]>
>> Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for
>> QCA7000")
>
> Hi Stefan,
>
> the Fixes should be on a single line.
>
> Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for QCA7000")

thanks for pointing out. Unfortunately this comes from the mail server,
which line warp here. I will try to use a different account. Sorry about
this mess :-(

>
>> ---
>> drivers/net/ethernet/qualcomm/qca_spi.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c
>> b/drivers/net/ethernet/qualcomm/qca_spi.c
>
> Likewise, the above two lines should be a single line.
> Unfortunately it seems that because it is not git doesn't apply
> this patch, which creates problems for automation linked to patchwork.
>
> I think it would be best to repost after resolving these minor issues.
>
>> index bba1947792ea16..90f18ea4c28ba1 100644
>> --- a/drivers/net/ethernet/qualcomm/qca_spi.c
>> +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
>> @@ -582,8 +582,7 @@ qcaspi_spi_thread(void *data)
>> while (!kthread_should_stop()) {
>> set_current_state(TASK_INTERRUPTIBLE);
>> if ((qca->intr_req == qca->intr_svc) &&
>> - (qca->txr.skb[qca->txr.head] == NULL) &&
>> - (qca->sync == QCASPI_SYNC_READY))
>> + !qca->txr.skb[qca->txr.head])
>> schedule();
>>
>> set_current_state(TASK_RUNNING);
>>
>

2023-06-15 08:14:40

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH net resend] net: qca_spi: Avoid high load if QCA7000 is not available

On Wed, Jun 14, 2023 at 10:40:57PM +0200, Stefan Wahren wrote:
> Hi Simon,
>
> Am 14.06.23 um 18:58 schrieb Simon Horman:
> > On Wed, Jun 14, 2023 at 01:17:14PM +0200, Stefan Wahren wrote:
> > > In case the QCA7000 is not available via SPI (e.g. in reset),
> > > the driver will cause a high load. The reason for this is
> > > that the synchronization is never finished and schedule()
> > > is never called. Since the synchronization is not timing
> > > critical, it's safe to drop this from the scheduling condition.
> > >
> > > Signed-off-by: Stefan Wahren <[email protected]>
> > > Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for
> > > QCA7000")
> >
> > Hi Stefan,
> >
> > the Fixes should be on a single line.
> >
> > Fixes: 291ab06ecf67 ("net: qualcomm: new Ethernet over SPI driver for QCA7000")
>
> thanks for pointing out. Unfortunately this comes from the mail server,
> which line warp here. I will try to use a different account. Sorry about
> this mess :-(

Thanks Stefan,

I thought it might be something annoying like that.

I see v2 and it seems clean wrt the issues I've raised here :)

>
> >
> > > ---
> > > drivers/net/ethernet/qualcomm/qca_spi.c | 3 +--
> > > 1 file changed, 1 insertion(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/net/ethernet/qualcomm/qca_spi.c
> > > b/drivers/net/ethernet/qualcomm/qca_spi.c
> >
> > Likewise, the above two lines should be a single line.
> > Unfortunately it seems that because it is not git doesn't apply
> > this patch, which creates problems for automation linked to patchwork.
> >
> > I think it would be best to repost after resolving these minor issues.
> >
> > > index bba1947792ea16..90f18ea4c28ba1 100644
> > > --- a/drivers/net/ethernet/qualcomm/qca_spi.c
> > > +++ b/drivers/net/ethernet/qualcomm/qca_spi.c
> > > @@ -582,8 +582,7 @@ qcaspi_spi_thread(void *data)
> > > while (!kthread_should_stop()) {
> > > set_current_state(TASK_INTERRUPTIBLE);
> > > if ((qca->intr_req == qca->intr_svc) &&
> > > - (qca->txr.skb[qca->txr.head] == NULL) &&
> > > - (qca->sync == QCASPI_SYNC_READY))
> > > + !qca->txr.skb[qca->txr.head])
> > > schedule();
> > > set_current_state(TASK_RUNNING);
> > >
> >