illumos / ipd Goto Github PK
View Code? Open in Web Editor NEWillumos Project Discussion
illumos Project Discussion
Tagging @gdamore, as he emailed me, and I'm long overdue putting it in the public record. The following text is his:
. . .
On allocb() using a less persistent attempt (and esballoc() and desballoc()):
I’m in favor of adding this as an option for NIC drivers. Most ethernet drivers can gracefully deal with packet loss, and this is indeed preferable to trying extra hard to allocate a packet. So for ethernet (and WIFI) drivers in particular, KM_NORMALPRI is preferable. (Note that this won’t apply to all NIC drivers. Note also that esballoc and desballoc are probably exclusively, or nearly so, used by NIC drivers trying to minimize DMA losses.)
Other places are less forgiving.
Our console, HID (keyboards, mice, etc.) and USB stacks use mblks. These are less likely to be forgiving of allocation failure. They shouldn’t be impacted.
IP is forgiving. But, at the same time if we’ve already paid the cost to obtain the packet from the hardware (which is likely not to be trivial), we probably don’t want to be too aggressive in dropping the packet. I’d vote for not using KM_NORMALPRI for things in the middle portion of the stack as a result.
For the same reasons in # 2, I would not use KM_NORMALPRI in msgpullup/pullupmsg.
So, to recap, I’d have it be opt-in, and only done in the receive routines for device drivers that can easily cope with it.
(Hmm… it might be a good idea to do this for allocb()’s that are used when looping back mblks sent downstream for promiscuous devices… I can see arguments both way in that case.)
. . .
illumos is the free/libre software core SVR4 implementation. Why not use the GPL, so that way SVR4 code can make it's way into Linux? This change will cause collaboration between the Linux kernel team and illumos to go up.
There is no solid definitions of the IPD states. For example, one could assume:
Pre-draft: Still so WIP that readers should expect document changes in the short term.
Draft: Document is "good" and needs to be implemented. Could be changed only in the face of implementation/bringup experience.
Published: Document reflects running code.
For example, IPD 6 is in pre-draft state, but is much further along than, say, a skeletal IPD like IPD 11 is as of the time of this issue's filing. IPD 6 has open questions, but once answered is good to implement.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.