Peter Teoh wrote:
> inside squeue.c:
> 
>      78  *
>      79  * Once created, squeues are never deleted. Hence squeue pointers are
> 
>      80  * always valid. This means that functions outside the squeue can 
> still
>      81  * refer safely to conn_sqp and their is no need for ref counts.
>      82  *
> 
> if squeue are attached to a particular network card interface, and then
> the RJ45 wire is hotplugged removed, and the reattached to another RJ45
> port, won't that create a problem - as all the threads queued are never
> requeued on the other interface?

There are probably performance issues related to receiving and
transmitting traffic on a different interface, but it's unclear to me
exactly how these things are related.  It's really not as simple as just
looking at the wires.

For instance, the CPU on which an application thread is dispatched seems
to have no particular relationship to the CPU binding for any of that
application's squeues.  My understanding of how this works is that if a
given squeue has no CPU thread executing within its perimeter (CPUs
sometimes do work other than networking, so it does happen), then direct
entry on another CPU is possible, and any outstanding work within the
squeue will happen at that time.

The implication is that in the scenario you cite, you'd stop receiving
interrupts on the CPU related to the first interface, and start getting
them on the CPU for the second.  Those threads would find that they've
got mostly uncontended entry into the squeues because the first CPU
isn't doing that work now.  (But that's just my high-level
understanding; it sounds like you need more than that.)

The FireEngine folks don't seem to have piped up on this thread yet.
I'd suggest trying over on crossbow-disc...@opensolaris.org, as many of
the folks on the Crossbow team were also on the previous FireEngine
team, and they're the ones with the detailed design information.

>   And this persistent existence of the
> squeue pointer could be a problem - in all possible manifestation (DoS,
> memory leak etc).

I don't understand the concern related to DoS or memory leaks.

Non-privileged users and external entities (i.e., received network
traffic) are not able to create squeues, so the DoS aspect is unclear.

As for memory leaks, if any existed, those would just be bugs related to
resource allocations that are mishandled.  How does the defined
persistence of an object relate directly to whether or not there are bugs?

It seems to me as though an assertion like that would have to be based
on the design details of the code itself.

-- 
James Carlson         42.703N 71.076W         <carls...@workingcode.com>
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to