In D33189#750472, @avg wrote:I thought a bit about gracefully handling too many (non-empty) fragments for a packet.
My only concern is what happens if we abort after seeing SOP and before reaching EOP.
Might that confuse the next call to vmxnet3_isc_rxd_available / vmxnet3_isc_rxd_pkt_get?
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Feed Advanced Search
Advanced Search
Advanced Search
Dec 1 2021
Dec 1 2021
Nov 30 2021
Nov 30 2021
We can only guess as to what may be really going on in the virtual device, but this seems like a correct defensive approach to what has been observed. Given the data at https://people.freebsd.org/~avg/vmxnet3-fragment-overrun.txt (thanks for collecting this!), I was concerned that there might be an issue with the fact that the virtual device is consuming free list entries for the zero-length fragments, but we are hiding this information from iflib, and that might break free list maintenance. I reviewed those paths, and it's fine (iflib tracks and replaces packet mbufs sent to the stack via a bitmap, provides the corresponding free list indexes to the driver during refill, and during refill, the vmx driver correctly identifies and handles gaps in those provided indexes).
May 19 2021
May 19 2021
This is the right fix for what is a mistaken partial edit that occurred when parent determination was pulled up into eval_pfqueue() during 1d34c9dac8624c5c315ae39ad3ae8e5879b23256.
Apr 26 2021
Apr 26 2021
pkelsey committed rGca7005f1893d: iflib: Improve mapping of TX/RX queues to CPUs (authored by pkelsey).
iflib: Improve mapping of TX/RX queues to CPUs
Mar 17 2020
Mar 17 2020
Restore power-of-2 queue count constraint from r290948
Mar 16 2020
Mar 16 2020
Mar 14 2020
Mar 14 2020
Remove extraneous code from iflib
pkelsey committed rS359001: Adjust if_vmx default receive parameters for better out-of-box performance.
Adjust if_vmx default receive parameters for better out-of-box performance
pkelsey committed rS359000: Fix if_vmx receive checksum offload bug and harden against the device skipping….
Fix if_vmx receive checksum offload bug and harden against the device skipping…
Remove refill budget from iflib
pkelsey committed rS358998: Allow iflib drivers to specify the buffer size used for each receive queue.
Allow iflib drivers to specify the buffer size used for each receive queue
Remove freelist contiguous-indexes assertion from rxd_frag_to_sd()
Fix iflib zero-length fragment handling
Fix iflib freelist state corruption
pkelsey retitled D23948: Remove refill budget from iflib from Add a sysctl to iflib to disable budget-based refill to Remove refill budget from iflib.
Mar 10 2020
Mar 10 2020
This kills the refill limit entirely.
Mar 4 2020
Mar 4 2020
In D23948#526385, @gallatin wrote:I get it, but that (totally arbitrary) limit is a pet peeve of mine. Its one of those things that you follow up several levels of code to an "XXX" comment and an arbitrary value. Its like reading a mystery novel and finding the butler really did do it.
And, to be honest, you already have the sysctl, If the user already has to touch something for decent performance, let's just have him set the budget to 65535 rather than making the running code even more complex.
In D23943#526402, @erj wrote:One driver that is subject to the above scenario is the ixl driver.
Does that mean you also tested this patch with the ixl driver? I didn't see it mentioned in the "Test Plan" notes.
pkelsey added a comment to D23947: Allow iflib drivers to specify the buffer size used for each receive queue.
In D23947#526398, @erj wrote:I think this looks okay, but I don't think it'll apply to the Intel drivers, right?
Mar 3 2020
Mar 3 2020
In D23948#526345, @gallatin wrote:Why not just remove the limit, rather than making things even more complex?
pkelsey added a comment to D23946: Remove freelist contiguous-indexes assertion from rxd_frag_to_sd().
In D23946#526363, @gallatin wrote:Funny how the comment right above the assert calls it out as bogus..
In D23945#526265, @avg wrote:LGTM.
I assume that a change to vmxnet3 that takes advantage of this improvement is coming.
Jan 15 2020
Jan 15 2020
Looks good to me.
Jan 13 2020
Jan 13 2020
Jan 12 2020
Jan 12 2020
I have updated bug 242890 to include the rationale for enabling (and also modifying) the #ifdef notyet RSS code when converting the driver to iflib, and also raised the question of whether this same issue exists for the bnxt driver.
Mar 14 2019
Mar 14 2019
Feb 18 2019
Feb 18 2019
In D19140#411495, @rozhuk.im-gmail.com wrote:Not sure that this works.
I try this on 11.2 and on Hyper-V gen1 system stick at ldelf loading stage on boot from zfs root.
Feb 17 2019
Feb 17 2019
pkelsey committed rS344234: It turns out r344226 narrowed the overrun bug but did not eliminate it entirely.
It turns out r344226 narrowed the overrun bug but did not eliminate it entirely
pkelsey retitled D19220: Still a memory corruption bug in vdev_read in loader ZFS support from Still a memory corruption bug in vdev_readin loader ZFS support to Still a memory corruption bug in vdev_read in loader ZFS support.
Remove whole-disk vdev support from zfsboot
Fix memory corruption bug introduced in r325310
Feb 12 2019
Feb 12 2019
Introduced local char * buffer pointer to avoid casts on output buffer pointer updates
Feb 11 2019
Feb 11 2019
Fix the fix added in r343287 for spurious HFSC bandwidth check errors
In D19140#409631, @tsoome wrote:In D19140#409630, @pkelsey wrote:In D19140#409629, @tsoome wrote:The reason why I am asking is, I am trying to understand if we actually *can* get into the situation with overrun, I got the impression the zfs on disk format should keep things sector aligned, but it really is easy to get confused there... And it does feel safer if we do have proper checks in place.
If the zfs on-disk format keeps things sector-aligned / sector-multiple, then why was vdev_read complicated with code to handle non-sector aligned / non-sector multiple reads to begin with?
Yea, you are right:)
In D19140#409629, @tsoome wrote:The reason why I am asking is, I am trying to understand if we actually *can* get into the situation with overrun, I got the impression the zfs on disk format should keep things sector aligned, but it really is easy to get confused there... And it does feel safer if we do have proper checks in place.
pkelsey added inline comments to D19140: Fix memory corruption bug in vdev_read in loader ZFS support.
In D19140#409448, @tsoome wrote:I have two questions:
- how was it tested - was there some corruption case?
Place pf_altq_get_nth_active() under the ALTQ ifdef
pkelsey committed rS343995: Reduce the time it takes the kernel to install a new PF config containing a….
Reduce the time it takes the kernel to install a new PF config containing a…
Feb 9 2019
Feb 9 2019
In D19124#409229, @kristof wrote:I have no objections to the patch, but I don't know enough about HFSC to meaningfully review this, I'm afraid.
Feb 8 2019
Feb 8 2019
Fix em(4) interrupt routing
Feb 3 2019
Feb 3 2019
Feb 2 2019
Feb 2 2019
Fix interrupt index configuratoin when using MSI interrupts.
Jan 28 2019
Jan 28 2019
Speed up non-status operations applied to a single interface
pkelsey committed rS343534: Don't re-evaluate ALTQ kernel configuration due to events on non-ALTQ interfaces.
Don't re-evaluate ALTQ kernel configuration due to events on non-ALTQ interfaces
Jan 24 2019
Jan 24 2019
pkelsey updated the diff for D18919: In ifconfig(8), don't build, sort and search all system addresses when performing a non-status action on a single interface.
Added ifname parameter to getifflags(), which now uses that instead of the global name var.
Jan 22 2019
Jan 22 2019
pkelsey committed rS343301: Add missing dependency to vmxnet3 Makefile and clean it up a bit otherwise..
Add missing dependency to vmxnet3 Makefile and clean it up a bit otherwise.
Remove unused function gsc_destroy()
onvert vmx(4) to being an iflib driver.