buf_ring(9) API precisions
Arnaud Lacombe
lacombar at gmail.com
Thu Sep 15 03:21:47 UTC 2011
Hi Kip,
I've got a few question about the buf_ring(9) API.
1) what means the 'drbr_' prefix. I can guess the two last letter, 'b'
and 'r', for Buffer Ring, but what about 'd' and 'r' ?
2) in `sys/sys/buf_ring.h', you defined 'struct buf_ring' as:
struct buf_ring {
volatile uint32_t br_prod_head;
volatile uint32_t br_prod_tail;
int br_prod_size;
int br_prod_mask;
uint64_t br_drops;
uint64_t br_prod_bufs;
uint64_t br_prod_bytes;
/*
* Pad out to next L2 cache line
*/
uint64_t _pad0[11];
volatile uint32_t br_cons_head;
volatile uint32_t br_cons_tail;
int br_cons_size;
int br_cons_mask;
/*
* Pad out to next L2 cache line
*/
uint64_t _pad1[14];
#ifdef DEBUG_BUFRING
struct mtx *br_lock;
#endif
void *br_ring[0];
};
Why are you making an MD guess, the amount of padding to fit the size
of a cache line, in MI API ? Strangely enough, you did not make this
assumption in, say r205488 (picked randomly).
Thanks in advance,
- Arnaud
More information about the freebsd-hackers
mailing list