kpatch/test/testmod
Jessica Yu 0bb5c106ef kmod: restructure kpatch sysfs tree
Restructure kpatch's sysfs interface and mirror the sysfs tree after
livepatch's sysfs layout. With the current sysfs layout, we cannot
distinguish which object a function belongs to, and we cannot tell which
modules/objects are patched. Therefore, restructure the kpatch sysfs tree
such that module/object information is available. With the new layout, each
patched object has its own directory, with each function being a
subdirectory of its object.

Implement this by embedding a kobject struct within the kpatch_module,
kpatch_func, and kpatch_object structs and supplying their ktypes and
kobject release methods.

Before:
/sys/kernel/kpatch
└── patches
    └── <patch_module>
        ├── checksum
        ├── enabled
        └── functions
            ├── <function>    # from <object1>
            │    ├── new_addr
            │    └── old_addr
            ├── <function>    # from <object2>
            │    ├── new_addr
            │    └── old_addr
            └─── <function>   # from <object3>
                 ├── new_addr
                 └── old_addr

After:
/sys/kernel/kpatch
└── <patch_module>
    ├── <object1>
    │   └── <function,sympos>
    │       ├── new_addr
    │       └── old_addr
    ├── <object2>
    │   └── <function,sympos>
    │       ├── new_addr
    │       └── old_addr
    ├── checksum
    ├── enabled
    └── <object3>
        └── <function,sympos>
            ├── new_addr
            └── old_addr
2017-02-27 20:07:16 -08:00
..
doit-client.sh kmod: restructure kpatch sysfs tree 2017-02-27 20:07:16 -08:00
doit.sh testmod/doit.sh: add .kpatch.checksum to test module 2014-09-09 07:52:41 -04:00
Makefile add module for testing module patching 2014-06-02 20:34:38 -05:00
patch add module for testing module patching 2014-06-02 20:34:38 -05:00
README add module for testing module patching 2014-06-02 20:34:38 -05:00
testmod_drv.c add module for testing module patching 2014-06-02 20:34:38 -05:00

To test, run ./doit.sh from the current directory.

To test on a remote system, set remote system using REMOTE in doit.sh.
Then run ./doit.sh.