|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [MirageOS-devel] Tracing and profiling blog post
> On 27 Oct 2014, at 11:31, Thomas Leonard <talex5@xxxxxxxxx> wrote:
>
> On 27 October 2014 11:22, Anil Madhavapeddy <anil@xxxxxxxxxx> wrote:
>> On 27 Oct 2014, at 11:17, Thomas Leonard <talex5@xxxxxxxxx> wrote:
>>>
>>> Note that everything should (in future) compile with an unmodified
>>> Lwt. Pinning the tracing version of Lwt is what will trigger
>>> everything to recompile with profiling support. So, getting this
>>> upstream shouldn't block anything (and might indeed be difficult),
>>> although if upstream wants to add a flag for it that would be great
>>> too.
>>>
>>> This is a change to my previous plan of having Lwt depend on
>>> mirage-profiling. Now, mirage-profiling depends on Lwt. If you want to
>>> use any extended feature of Lwt you should go via profiling. e.g. in
>>> mirage-platform we have:
>>>
>>> let ports = Array.init nr_events (fun port -> {
>>> counter = program_start;
>>> c = Profile.named_condition ("after-chn-" ^ string_of_int port)
>>> })
>>>
>>> If Lwt.tracing is installed then Profile.named_condition is:
>>>
>>> let named_condition label =
>>> Lwt_condition.create ~label ()
>>>
>>> Without, it will be:
>>>
>>> let named_condition _label = Lwt_condition.create ()
>>
>> This also sounds like the right order, and permits other tracing
>> strategies in the future for Lwt. Are you doing the mirage-platform
>> conditional compilation via optcomp?
>
> My plan is that only mirage-profile will use conditional compilation
> and everything else will always depend on mirage-profile, but get the
> calls optimised out by the compiler when tracing isn't being used.
>
> Currently though I haven't implemented anything. I was thinking of
> having two versions of profile.ml and only compiling the appropriate
> one.
>
> mirage-profile is currently using assemblage, so any suggestions on
> the best way to do that are welcome. My current thought is to have a
> flag saying whether you want profiling, and have OPAM set the flag
> depending on the availablilty of the lwt.tracing ocamlfind package
> (which the modified Lwt installs). Or should the build detect this
> somehow?
>
> If assemblage is too experimental for mirage-dev, I could also convert to
> oasis.
Assemblage is still undergoing 'rapid iteration', so I'd suggest
switching to OASIS until we have a more stable version. ThomasG or
Daniel Buenzli can correct me if that's not accurate.
-anil
_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |