mbuf doubts
Giovanni P. Tirloni
gpt at tirloni.org
Tue Sep 23 19:12:24 PDT 2003
Hi,
I have been reading the D&I chapter about IPC, specially the mbuf
section and *many* doubts were raised by my mind. I sending them here
in the hope that someone can clarify some bits for me so I can proceed.
Reading sys/param.h and sys/mbuf.h I came to the conclusion that there
are four types of mbufs regarding it's allocation of memory for data.
Is the listing below correct?
struct mbuf *m;
1. Normal mbuf using m->M_databuf
2. Normal mbuf with external storage (cluster?) in m->m_hdr->mh_data
3. Header mbuf using m->m_pktdat;
4. Header mbuf with ext. storage (cluster?) in m->m_ext->ext_buf
Other questions:
1. When using ext. storage is the space allocated by M_databuf wasted?
2. How the system decides 256 bytes for each mbuf isn't enough and it
needs a mbuf cluster? Isn't chaining useful there?
3. How does changing MSIZE affects the whole thing?
4. What about MCLBYTES?
Sorry to make so many questions at once but I find it very interesting
and I'm really willing to learn how the building blocks of the network
stack work. Perhaps my questions are out of reality.. it's risk.
Thanks,
--
Giovanni P. Tirloni <gpt at tirloni.org>
Fingerprint: 8C3F BEC5 79BD 3E9B EDB8 72F4 16E8 BA5E D031 5C26
More information about the freebsd-hackers
mailing list