> I got the following output from valgrind/memcheck while > I was testing mozilla thunderbird using its test framework, "make mozmill".
> 1. Can this unfamiliar clone be supported? > ==803== Unsupported clone() flags: 0x800600 Perhaps. Here is an analysis plus something that you can attempt: ----- /usr/include/bits/sched.h: # define CLONE_VM 0x00000100 /* Set if VM shared between processes. */ # define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */ # define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */ # define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to wake it up on mm_release. */ # define CLONE_UNTRACED 0x00800000 /* Set if the tracing process can't force CLONE_PTRACE on this clone. */ ----- coregrind/m_syswrap/syswrap-amd64-linux.c /* Only look at the flags we really care about */ switch (cloneflags & (VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FILES | VKI_CLONE_VFORK)) { case VKI_CLONE_VM | VKI_CLONE_FS | VKI_CLONE_FILES: /* thread creation */ <<snip>> case VKI_CLONE_VFORK | VKI_CLONE_VM: /* vfork */ /* FALLTHROUGH - assume vfork == fork */ cloneflags &= ~(VKI_CLONE_VFORK | VKI_CLONE_VM); case 0: /* plain fork */ <<snip>> default: /* should we just ENOSYS? */ VG_(message)(Vg_UserMsg, "Unsupported clone() flags: 0x%lx\n", ARG1); ----- So by omitting VKI_CLONE_VM from flags then mozilla is *not* making a new thread, but instead is making a new process via "plain fork". However, a plain fork with CLONE_FS and CLONE_FILES set (that is, a separate process that *shares* filesystem info and open files with its parent) is not something that coregrind understands. I'm not sure I understand it, either. What do the mozilla comments say? What is mozilla trying to accomplish by clone() with those peculiar flags? After that, then the first thing to try is to tail-merge mozilla's special case into coregrind's "plain fork": case VKI_CLONE_FS | VKI_CLONE_FILES: /* DEBUG: mozilla special case */ /* FALLTHROUGH into plain fork */ case 0: /* plain fork */ Re-build valgrind (including "make install") and try that. -- ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users