Re: svn commit: r358995 - head/sys/net

2020-03-16 Thread Patrick Kelsey
On Mon, Mar 16, 2020 at 7:55 AM Slawa Olhovchenkov  wrote:

> On Sat, Mar 14, 2020 at 07:43:44PM +, Patrick Kelsey wrote:
>
> > Author: pkelsey
> > Date: Sat Mar 14 19:43:44 2020
> > New Revision: 358995
> > URL: https://svnweb.freebsd.org/changeset/base/358995
> >
> > Log:
> >   Fix iflib freelist state corruption
> >
> >   This fixes a bug in iflib freelist management that breaks the required
> >   correspondence between freelist indexes and driver ring slots.
> >
> >   PR: 243126, 243392, 240628
>
> Are you sure?
> Bug 240628 - sysutils/zfsnap2: Completion script link for zsh has
> wrong path
>
>
Unfortunately, that should be 240608, not 240628.


> >   Reported by:avg, alexandr.oleyni...@gmail.com, Harald
> Schmalzbauer
> >   Reviewed by:avg, gallatin
> >   MFC after:  1 week
> >   Differential Revision:  https://reviews.freebsd.org/D23943
>
> Very interesting.
> Is this related to my problem?
> I am have trouble w/ netmap:
>
> 1. netmap reported RX slots filled all ring (tail == head-1)
> 2. application processed all RX slots and reported to nemap (head == tail)
> 3. RX stuck.
>
> workaround: report on step 2 head = tail-1 (one RX slots left
> unprocessed).
>
> Also I am have trouble w/ TX, similar.
>

 This commit changes code that netmap does not use.  netmap freelist refill
is handled via netmap_fl_refill() in iflib.c, and that was not examined as
part of this work.

-Patrick
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r358995 - head/sys/net

2020-03-16 Thread Slawa Olhovchenkov
On Sat, Mar 14, 2020 at 07:43:44PM +, Patrick Kelsey wrote:

> Author: pkelsey
> Date: Sat Mar 14 19:43:44 2020
> New Revision: 358995
> URL: https://svnweb.freebsd.org/changeset/base/358995
> 
> Log:
>   Fix iflib freelist state corruption
>   
>   This fixes a bug in iflib freelist management that breaks the required
>   correspondence between freelist indexes and driver ring slots.
>   
>   PR: 243126, 243392, 240628

Are you sure?
Bug 240628 - sysutils/zfsnap2: Completion script link for zsh has
wrong path 

>   Reported by:avg, alexandr.oleyni...@gmail.com, Harald Schmalzbauer
>   Reviewed by:avg, gallatin
>   MFC after:  1 week
>   Differential Revision:  https://reviews.freebsd.org/D23943

Very interesting.
Is this related to my problem?
I am have trouble w/ netmap:

1. netmap reported RX slots filled all ring (tail == head-1)
2. application processed all RX slots and reported to nemap (head == tail)
3. RX stuck.

workaround: report on step 2 head = tail-1 (one RX slots left
unprocessed).

Also I am have trouble w/ TX, similar.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r358995 - head/sys/net

2020-03-14 Thread Patrick Kelsey
Author: pkelsey
Date: Sat Mar 14 19:43:44 2020
New Revision: 358995
URL: https://svnweb.freebsd.org/changeset/base/358995

Log:
  Fix iflib freelist state corruption
  
  This fixes a bug in iflib freelist management that breaks the required
  correspondence between freelist indexes and driver ring slots.
  
  PR:   243126, 243392, 240628
  Reported by:  avg, alexandr.oleyni...@gmail.com, Harald Schmalzbauer
  Reviewed by:  avg, gallatin
  MFC after:1 week
  Differential Revision:https://reviews.freebsd.org/D23943

Modified:
  head/sys/net/iflib.c

Modified: head/sys/net/iflib.c
==
--- head/sys/net/iflib.cSat Mar 14 18:35:44 2020(r358994)
+++ head/sys/net/iflib.cSat Mar 14 19:43:44 2020(r358995)
@@ -2072,7 +2072,9 @@ _iflib_fl_refill(if_ctx_t ctx, iflib_fl_t fl, int coun
bus_dmamap_sync(fl->ifl_ifdi->idi_tag, fl->ifl_ifdi->idi_map,
BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
ctx->isc_rxd_flush(ctx->ifc_softc, fl->ifl_rxq->ifr_id, fl->ifl_id, 
pidx);
-   fl->ifl_fragidx = frag_idx;
+   fl->ifl_fragidx = frag_idx + 1;
+   if (fl->ifl_fragidx == fl->ifl_size)
+   fl->ifl_fragidx = 0;
 
return (n == -1 ? 0 : IFLIB_RXEOF_EMPTY);
 }
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"