metan-ucw / runltp-ng

Minimalistic LTP testrunner
11 stars 16 forks source link

[RFC] On SUT Executor and snapshots #22

Closed richiejp closed 2 years ago

richiejp commented 4 years ago

This almost certainly belongs in its own repo, but for now I will put it here.

See the README.

19

richiejp commented 4 years ago

I think I will move this to its own repository and separate the actors out too.

richiejp commented 4 years ago

Separated the actors component (because I might use that for something else) and put the executor in its own repository.

https://gitlab.com/Palethorpe/ltp-executor https://gitlab.com/Palethorpe/libactors

shunghsiyu commented 4 years ago

I think it look great!

While I'm neither an expert in RCU nor the actor model, skimming through the code I feel like I can understand most of it, so there's that on readability :)

As for the functionality part everything essential seems covered as well.

Look forward to see this integrated, it will definitely solve issues I'm facing :+1:

richiejp commented 4 years ago

I have an end-to-end demo working https://gitlab.com/Palethorpe/ltp-executor/-/blob/master/test/qemu-integration.sh

Will try to integrate it with runltp-ng next, but first I will path LTP to support building it with a config option like the syzkaller reproducers.

richiejp commented 4 years ago

This branch now integrates the Executor with runltp-ng and implements revert to snapshot (actually QEMU migrations) which is significantly faster than rebooting the VM with KASAN enabled.

JSON log file generation is broken.

richiejp commented 4 years ago

Implements #23

shunghsiyu commented 4 years ago

@richiejp thank you so much :star_struck:

I'm planning on trying it out next week, will let you know how it goes

richiejp commented 4 years ago

OK, you will have to do some manual configuration of the VM. I start the executor with systemd on SLE https://gitlab.com/Palethorpe/ltp-executor/-/blob/master/usr/lib/systemd/ltp-executor@.service

Also you need the LTP branch which includes the executor: https://gitlab.suse.de/kernel-qa/ltp/-/tree/syz+exec

and need to add --with-executor to the configure step and make sure you have the executor deps, such as Cmake and liburcu. I will probably remove these deps and just add the executor to the LTP by default, but this will be quite a lot of work (reinventing the wheel).