proot icon indicating copy to clipboard operation
proot copied to clipboard

Multithreading support?

Open Kaned1as opened this issue 7 years ago • 9 comments

Hi. As I can see PRoot is now only single-threaded and looks at tracee signals sequentially one after another (event.c). Are there any plans on doing handler-per-tracee-thread implementation?

Kaned1as avatar Dec 23 '16 12:12 Kaned1as

This is not part of the short-term plans. But feel free to document something over here if you have ideas to address this.

All the efforts are directed at solving #106 as far as I'm concerned.

Fancy joining?

jopasserat avatar Jan 10 '17 11:01 jopasserat

Thanks!

I've yet to understand codebase and implications of changes, but will post here in case of any ideas.

Kaned1as avatar Jan 10 '17 12:01 Kaned1as

I've yet to understanding everything as well :) But I'll try to format some notes that I've gathered here and there and make them available on the wiki so that everyone can contribute their bits too.

jopasserat avatar Jan 10 '17 12:01 jopasserat

Hi Adonai, I've found a mention of your idea at the end of the roadmap. Though implementing it reliably might take some time.

It might imply some issues with extensions/PRoot features that rely on having one unique central PRoot instance (like the netcoop and copy-on-write extensions, when they will be added). But performance wise it might be worthwhile indeed.

vincenthage avatar Jun 29 '17 21:06 vincenthage

See also: https://github.com/proot-me/proot/issues/106#issuecomment-494680705

oxr463 avatar May 22 '19 11:05 oxr463

Hi, is this still something you're interested in adding to the project? My partner and I from UT Austin would be interested in working on this for one of our classes.

travarin avatar Nov 15 '19 17:11 travarin

Yes please! Also, if you have any experience with seccomp, (See: https://github.com/proot-me/proot/pull/130).

I propose we implement libseccomp and multi-threading simultaneously, (See: https://github.com/seccomp/libseccomp/issues/102).

oxr463 avatar Nov 15 '19 19:11 oxr463

Just to clarify, for libseccomp would we be implementing the tests under the TODO in #130?

travarin avatar Nov 20 '19 17:11 travarin

You mean these?

Create tests for seccomp:

  • with PROOT_NO_SECCOMP
  • without PROOT_NO_SECCOMP
  • kernel version >= 4.8
  • kernel version < 4.8

If so, the answer is yes; we need to be sure that PRoot will work properly regardless of kernel version or seccomp configuration.

oxr463 avatar Nov 20 '19 18:11 oxr463