|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2-resend 22/30] libxl: ocaml: event management [and 1 more messages]
David Scott writes ("Re: [Xen-devel] [PATCH v2-resend 22/30] libxl: ocaml:
event management [and 1 more messages]"):
> Rob Hoes writes ("[Xen-devel] [PATCH v2-resend 22/30] libxl: ocaml:
> event management"):
> > This is quite striking. You're converting a bitfield into a linked
> > list of consed enums. Does ocaml really not have something more
> > resembling a set-of-small-enum type, represeted as a bitfield ?
..
> Unfortunately there's no direct support for bitfields in OCaml's heap
> data representation. The common pattern is to convert bitfields into
> lists of constructors e.g.
>
> https://github.com/ocaml/ocaml/blob/trunk/otherlibs/unix/open.c#L74
How sad.
> On the positive side, the GC is optimised specifically for the case of
> short-lived small objects, since this is what you get when you write a
> compiler or a theorem prover. An allocation in the minor heap is simply
> a pointer bump, and the trash is chucked out pretty often. The rule of
> thumb is that anything which has the allocation profile of a compiler or
> a theorem prover usually works pretty well :-)
OK :-).
> I think if we're allocating a (shortish) list per "lump" of console I/O
> we're probably ok since I assume we're allocating and deallocating
> bigger buffers for the console data anyway. For higher throughput
> channels (vchan, network, disk etc) I'd go for larger,
> statically-allocated pools of buffers for the data and use a bigger
> lump-size to amortize the cost of the metadata handling.
libxl doesn't normally concern itself with the main data path, so
vchan, network and disk i/o aren't a problem.
So, I'm reassured on this point.
The locking question is more difficult, I think.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |