[Barrelfish-users] How Barrelfish Manage MPB on SCC?
Stefan Kästle
stefan.kaestle at inf.ethz.ch
Thu Jun 7 12:54:22 CEST 2012
Hi,
> 1. In /kernel/arch/scc/rck.c, there are some functions which seems not
> defined, such as rck_tas_rd_raw, rck_initialize, etc. Although I can
> see that they are wraps of low level assembly code, but I can not find
> their definition anywhere in the source tree. Can someone kindly point
> it out?
These functions are automatically generated by Mackerel from
dev/rck.dev. The generated file will end up in
<build>/scc/include/dev/rck_dev.h as
static inline uint32_t __DP(tas_rd_raw)( __DN(t) * _dev, int _i )
> 2. I know that RCK inter-connect driver use MPB as notification
> buffer, but I didn't find the code that manage this MPB space. Can
> someone point out where the RCK backend is implemented? I was also
> wondering how much MPB space is left and whether user application can
> touch these left MPB space.
They are configured in kernel/arch/scc/rck.c
Have a look at functions rck_send_notification and
rck_handle_notification. Notifications are stored in a ring-buffer. The
size of this ring-buffer is defined as RING_SIZE. You can vary the size
accordingly. Don't set the value too small. Last time I checked,
overflows were not handled properly (an assertion will fail in case it
does overflow).
The default configuration will use up pretty much all MPB space (255
entries in the ring-buffer at 32 Bytes = 8160 Bytes with MPB being 8192
Bytes)
Hope that helps
--
Stefan
More information about the Barrelfish-users
mailing list