In D17910#383510, @vmaffione wrote:I'm sorry, but as a design decision for netmap we never automatically change interface features/offloading automatically and restore them.
We require the application or the system administrator to do so explicitely.
In any case this must be discussed with the upstream project https://github.com/luigirizzo/netmap
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Feed Advanced Search
Advanced Search
Advanced Search
Jun 8 2021
Jun 8 2021
jch added a reviewer for D17910: netmap: automatically disable some capabilities over vlan interface: jch.
jch updated subscribers of D17910: netmap: automatically disable some capabilities over vlan interface.
Apr 28 2021
Apr 28 2021
The same feature was added with r357606 revision: We can close this review.
Sep 5 2019
Sep 5 2019
This change is not needed anymore as it has been fixed with r324945
jch added reviewers for D17884: efifb: add a tunable to select the framebuffer cache attribute: jhb, imp.
Nov 12 2018
Nov 12 2018
cxgbe/netmap: Fix cxgbe netmap when interface is DOWN
Nov 11 2018
Nov 11 2018
jch added a reviewer for D17910: netmap: automatically disable some capabilities over vlan interface: vmaffione.
jch added a reviewer for D17896: netmap: netmap_transmit should honor bpf packet tap hook.: vmaffione.
jch added a reviewer for D17951: Chelsio/netmap: propagate disabled IFCAP checksum flags to kernel: np.
Nov 9 2018
Nov 9 2018
Nov 7 2018
Nov 7 2018
Nov 5 2018
Nov 5 2018
Address @np comment
In D17802#381512, @np wrote:Can you provide exact steps to reproduce the problem that you described? I get an EAGAIN (as expected) and not a panic if I try to enable netmap when the link is down.
Address @np comment
In D17843#381446, @np wrote:What version of FreeBSD is this? I think this is already fixed in 12.0.
Nov 1 2018
Nov 1 2018
Jun 15 2018
Jun 15 2018
In D15686#333677, @mmacy wrote:@jch sounds simple enough to replicate, nonetheless can you share any benchmark source?
Jun 13 2018
Jun 13 2018
In D15686#333661, @mmacy wrote:In D15686#333660, @rwatson wrote:[snip]
I think you slightly misread my comment. It was not so much that I am concerned that there is a pathological case in theory (clearly those exist all over the place), it's that in practical use this could shift the watermark on allocated inpcbs substantially in some real-world workloads, and that it would be good to seek some testing from who work with such workloads, which differ substantially from the target workload for this work (as I understand it). In the past, work on who connections/sec support has been primarily driven by the folk at Verisign doing top-level domain hosting, and who have a good test setup for that. I wonder if they'd be willing to give this a spin and in particular look for evidence of impact on connections/sec to make sure that this doesn't lead to a substantive decrease (and ideally instead leads to an increase) in connection throughput.It seems unlikely that a 2ms backlog of inpcbs could alter the connection rate, vs new connections not blocking on callouts and all the various points that acquire an info read lock. Verisign has not been responsive of late, but if they're willing to test that would be an interesting data point.
Oct 24 2017
Oct 24 2017
Oct 2 2017
Oct 2 2017
jch committed rS324193: Forgotten bits in r324179: Include sys/syslog.h if INVARIANTS is not defined.
Forgotten bits in r324179: Include sys/syslog.h if INVARIANTS is not defined
Oct 1 2017
Oct 1 2017
Fix an infinite loop in tcp_tw_2msl_scan() when an INP_TIMEWAIT inp has
Sep 7 2017
Sep 7 2017
Jan 17 2017
Jan 17 2017
Update my PGP key before expiration
Nov 24 2016
Nov 24 2016
Nov 7 2016
Nov 7 2016
Nov 3 2016
Nov 3 2016
Oct 26 2016
Oct 26 2016
Remove an extraneous call to soisconnected() in syncache_socket(),
Oct 25 2016
Oct 25 2016
jch added a comment to D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
Fixed and MFC'ed with rS307551: Fix a double-free when an inp transitions to INP_TIMEWAIT state.
Oct 19 2016
Oct 19 2016
jch added a comment to D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
gnn accepted this revision.
Oct 18 2016
Oct 18 2016
Fix a double-free when an inp transitions to INP_TIMEWAIT state
Oct 17 2016
Oct 17 2016
jch added a comment to D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
Still need someone from -transport to approve this review though. :)
jch added a comment to D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
In D8211#171925, @slw_zxy.spb.ru wrote:I was testing this patch in 3 days.
No TCP related problems.
Oct 13 2016
Oct 13 2016
jch updated the diff for D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
Review from Slawa:
- log(LOG_ERR) and workaround a difficult to debug case when INVARIANT is not defined
- Add a tcp_twstart KASSERT
Oct 12 2016
Oct 12 2016
jch added a comment to D8072: Remove an extraneous call to soisconnected() in syncache_socket(), introduced with r261242..
Thanks for your time on this review, will push this change as soon as D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped. is complete.
Oct 10 2016
Oct 10 2016
jch added a comment to D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
In D8211#170331, @slw_zxy.spb.ru wrote:I think imp also have reproduced this issue (https://lists.freebsd.org/pipermail/freebsd-stable/2016-September/085518.html)
Also report Urmas Lett <urmas.lett@eenet.ee> (email to jch)
jch updated the diff for D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
Fix a comment typo
jch added a comment to D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
Currently only @slw_zxy.spb.ru and @girgen have reproduced this issue thus are able to validate this change, I have not been able to reproduce it but our TCP QA is all good with this change.
jch retitled D8211: Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped. from to Fix a double-free when an inp transitions to INP_TIMEWAIT state after having been dropped..
Oct 9 2016
Oct 9 2016
Sep 30 2016
Sep 30 2016
Sep 29 2016
Sep 29 2016
jch retitled D8072: Remove an extraneous call to soisconnected() in syncache_socket(), introduced with r261242. from to Remove an extraneous call to soisconnected() in syncache_socket(), introduced with r261242..
Fix an issue with accept_filter introduced with r261242:
Jul 27 2016
Jul 27 2016
Jul 18 2016
Jul 18 2016
Jul 14 2016
Jul 14 2016
Jul 6 2016
Jul 6 2016
Jul 4 2016
Jul 4 2016
jch added a comment to D7042: When a callout is being run and scheduled at the same time, callout_stop()
would only unschedule the scheduled one, but will not drain the running
one..
In D7042#147487, @glebius wrote:I would not agree that there is API change for callout_stop(). Let's look into the manual page:
...The problem is that the whole paradigm of callouts is that it has three consequent states: not scheduled -> scheduled -> running -> not scheduled. The API and the manual page assume that, some comments in the code assume that, and looks like some contributors to the code also did. But this paradigm isn't true. A callout can be scheduled and running at the same time. And the mishandling of this state was the source of our TCP panics. Now let's get back to the documentation and see what should callout_stop() return if callout is scheduled and running at the same time. It should return 0 because callout is currently being serviced and can't be stopped. At the same time it should return 1, since it has successfully unscheduled a callout. So it must be 0 and 1 at the same time! :) Yep, which is impossible. The API is limited by wrong paradigm and we must select the most safe value between these two. Now, I assert that returning 1 is much less safe in this case. Because any properly designed user of the API will be ready to free resources that are now in use by running callout. This is exactly what happened with TCP. Any other user, use it async version or not, is also prone to panic if we return 1. I assert that returning 0 will make behaviour more safe, and won't break any users, since this is what a sane programmer would expect from API. To finalize, I would notice that this state of running+scheduled in practice is extremely rare, if we noticed it only now at above 50 Gbit/s. So, I'm strongly against limiting the behavior only to async version.
jch added a comment to D7042: When a callout is being run and scheduled at the same time, callout_stop()
would only unschedule the scheduled one, but will not drain the running
one..
Looks good to me, let me launch our TCP QA on it.
Jul 1 2016
Jul 1 2016
jch added a comment to D7042: When a callout is being run and scheduled at the same time, callout_stop()
would only unschedule the scheduled one, but will not drain the running
one..
In D7042#147452, @hselasky wrote:callout_stop() should return 0 when the callout is currently being serviced and indeed unstoppable.
I think this approach will add extra complications to the code.
I suggest to use:
static void
dummy_drain(void *arg)
{
}ret = callout_async_drain(co, &dummy_drain, NULL);
Which is basically what you want and allow callout_async_drain() to update the callback function if called multiple times.
Instead of:
ret = callout_stop()
In this case. It returns the correct value for the client.
If callout_stop() always return 0 in the MPSAFE cc_exec_curr == c, it breaks the callout API possibly with out-of-the-tree code which we don't control.
jch added a comment to D7042: When a callout is being run and scheduled at the same time, callout_stop()
would only unschedule the scheduled one, but will not drain the running
one..
I agree with this change spirit:
Apr 25 2016
Apr 25 2016
Tested on top of -CURRENT r298539 and all good. Performance are the same with and without this patch (this is expected). Green light from me.
Apr 19 2016
Apr 19 2016
I starting testing this callout_async_drain() usage and so far so good. Let me upgrade our lab to a more recent revision of -CURRENT and I will report my findings here (should be by the end of this week).
Apr 15 2016
Apr 15 2016
In D5924#126467, @rrs wrote:jch: Thanks for running your torture tests.. I did not take out the flags you added though I
am not sure we need them anymore.. what do you think?
Apr 12 2016
Apr 12 2016
Nice to see callout_async_drain() in action, TCP timer code being (much) cleaner. Will review this change, and run our usual TCP torture tests on it.
Dec 23 2015
Dec 23 2015
I approve this server-side TFO implementation, it is a solid first implementation we can build on.
Nov 3 2015
Nov 3 2015
Oct 16 2015
Oct 16 2015
Oct 9 2015
Oct 9 2015
Good example of using callout_drain_async().
I approve this change for MPSAFE callouts. As I lack of specific tests (and knowledge) for non-MPSAFE callouts, I would like another reviewer to look at it (@rrs?).
I have used and tested callout_async_drain() for TCP timer callouts and all good, everything works as expected. I would suggest you to create a review that depends on this one, to show how to use callout_async_drain() as a real example. What I did for my testing:
Oct 8 2015
Oct 8 2015
I am indeed for adding callout_drain_async() as this is exactly what we are doing with TCP timer callouts in HEAD, stable/10 and releng/10.2, but it is currently done using callout_stop()/callout_reset() in a non simple way instead of using directly callout_drain_async().
Sep 15 2015
Sep 15 2015
Let me try to try callout_drain_async() in top of our last TCP changes. I will put the results here.
I do approve the addition of this function, it would have made my life much easier for these two tasks:
Aug 30 2015
Aug 30 2015
jch added a comment to D2763: Fix a callout race condition introduced in TCP timers callouts with r281599..
Change put back with rS287304: Put r284245 back in place: If at first this fix was seen as a temporary, as it turns out this change is not a workaround for a callout_stop() bug, but the right to use callout_stop()/callout_reset() in mpsafe mode. Should be the last change in the task to remove TCP timers race conditions started with D2079: Fix TCP timers use-after-free old race conditions.
jch added a comment to D3078: callout_stop() should return 0 when the callout is currently being serviced and
indeed unstoppable..
Change reverted in rS287305: Revert r286880: If at first this change made sense, it turns out, thanks for your time sharing the subtlety of callout_stop() in mpsafe mode.
Revert r286880: If at first this change made sense, it turns out
Put r284245 back in place: If at first this fix was seen as a temporary
Aug 27 2015
Aug 27 2015
jch updated subscribers of D3078: callout_stop() should return 0 when the callout is currently being serviced and
indeed unstoppable..
Hi guys, after emails exchanges with @helasky and @kib I believe that if this change makes sense and improves some callout usages (i.e. in TCP timers) it is not worth it overall. In details:
jch updated the diff for D3078: callout_stop() should return 0 when the callout is currently being serviced and
indeed unstoppable..
Updated with hselaski inputs
Silent a compilation warning on callout_stop()
In callout_stop(), do not forget to initialize not_running variable.