[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-networking-discuss
Subject:    [networking-discuss] GLD_NORESOURCES behavior?
From:       gallatin () cs ! duke ! edu (Andrew Gallatin)
Date:       2006-02-24 7:01:34
Message-ID: 17407.8115.406970.929536 () grasshopper ! cs ! duke ! edu
[Download RAW message or body]


Can somebody please explain what GLDv2 does when a driver's
gldm_send() routine returns GLD_NORESOURCES?

>From the gld(9E) man page, my impression was that it should stop
calling the gldm_send() routine immediately and not resume calling the
gldm_send() routine until after the driver calls gld_sched().
However, from some counters I'm exporting from my driver, this does
not seem to be true.  I see that I've returned GLD_NORESOURCES 101882
times, and 97215 (or 95%) of those have been after I've already
returned GLD_NORESOURCES but have not yet called gld_sched().  The
kstat xmtretry for my nic also shows 101882.   I'm wondering why
I'm being called so many times after I've returned GLD_NORESOURCES.

This is from Solaris 10U1 on a T2000, using a single-threaded 
sender sending as fast as he can using sendfile() so as to
avoid data copies.  

If I disable all but 2 of the 32 "cpus", I see fewer calls,
(6348) but again, 95% of them are made when I have previously
returned GLD_NORESOURCES, and have not yet called gld_sched().
Any idea what's going on?

Thanks,

Drew

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic