On Sun, Feb 9, 2014 at 7:36 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: > Il 08/02/2014 18:46, Peter Maydell ha scritto: > >>> This adds parameter "argv0" in calling path from main() to >>> > module_call_init(). So that module loader knows the location of >>> > executable. >> >> This patch looks kind of odd to me. Why are there so many >> different places calling module_call_init() and passing in an >> argv0? I would have expected that vl.c (and the equivalent main >> functions for the tools) would just initialise the module system >> once, passing in the argv0 at that point. > > > I'm ambivalent about this. > > >> It's not obvious why >> the block layer should be handing argv0 around through bdrv_init >> in order to (re-?) initialise modules. > > > The executable directory is not found once and for all, it's recomputed on > any call to module_load or os_find_datadir. >
How about compute it for once in main() and load in module_call_init()? Fam