cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

regression_test.txt (1628B)


      1Testing for regressions in Media Controller API register, ioctl, syscall,
      2and unregister paths. There have a few problems that result in user-after
      3free on media_device, media_devnode, and cdev pointers when the driver is
      4unbound while ioctl is in progress.
      5
      6Test Procedure:
      7
      8Run bin/unbind loop while ioctls are in progress.
      9Run rmmod and modprobe.
     10Disconnect the device.
     11
     12Setup:
     13
     14Build media_device_test
     15cd tools/testing/selftests/media_tests
     16make
     17
     18Regressions test for cdev user-after free error on /dev/mediaX when driver
     19is unbound:
     20
     21Start media_device_test to regression test media devnode dynamic alloc
     22and cdev user-after-free fixes. This opens media dev files and sits in
     23a loop running media ioctl MEDIA_IOC_DEVICE_INFO command once every 10
     24seconds. The idea is when device file goes away, media devnode and cdev
     25should stick around until this test exits.
     26
     27The test for a random number of iterations or until user kills it with a
     28sleep 10 in between the ioctl calls.
     29
     30sudo ./media_device_test -d /dev/mediaX
     31
     32Regression test for media_devnode unregister race with ioctl_syscall:
     33
     34Start 6 open_loop_test.sh tests with different /dev/mediaX files. When
     35device file goes away after unbind, device file name changes. Start the
     36test with possible device names. If we start with /dev/media0 for example,
     37after unbind, /dev/media1 or /dev/media2 could get created. The idea is
     38keep ioctls going while bind/unbind runs.
     39
     40Copy bind_unbind_sample.txt and make changes to specify the driver name
     41and number to run bind and unbind. Start the bind_unbind.sh
     42
     43Run dmesg looking for any user-after free errors or mutex lock errors.