On 30/06/2012 1:10 AM, Darren Reed wrote:
> This patch won't work for UDP if the udp ring count
> is greater than the TCP ring count. This is because the
> code in mac_rx_srs_fanout() limits the looping over
> the enqueued data structures to that of "fanout",
> which is only set once.
>
> The bug is the loop at the bottom of mac_rx_srs_fanout().
>
> There are a few things that could be done with it...
Of course I forgot to read this..
* Since the softrings are never destroyed and we always
* create equal number of softrings for TCP, UDP and rest,
* its OK to check one of them for count and use it without
* any lock. In future, if soft rings get destroyed because
* of reduction in fanout, we will need to ensure that happens
* behind the SRS_PROC.
... so there's a separate ring count for tcp, udp and other,
yet all three counters are the same but used like they are
different when the code thinks that it is ok to be like that.
Is one of joyent/nexenta/someone looking at this as part
of a (major) project?
Darren
-------------------------------------------
illumos-discuss
Archives: https://www.listbox.com/member/archive/182180/=now
RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be
Modify Your Subscription:
https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4
Powered by Listbox: http://www.listbox.com