I did git bisect to identify which change in the code repo caused the performance degradation. The log is below. It identifies 3 commits, which contain a small change around RETHUNK feature. The performance degradation might therefore be intentional to avoid security vulnerabilities.
# git bisect log
git bisect start
# bad: [c6f48204c530ee031a62a37cf72dc91bdd3e0c3e] UBUNTU: Ubuntu-5.15.0-111.121
git bisect bad c6f48204c530ee031a62a37cf72dc91bdd3e0c3e
# good: [7d5ccdf5683ced7ab2a337434a23996029338946] UBUNTU: Ubuntu-5.15.0-107.117
git bisect good 7d5ccdf5683ced7ab2a337434a23996029338946
# good: [ef10ffdd4e8bebdc7ae915a897fa6aa11668882c] UBUNTU: Ubuntu-5.15.0-106.116
git bisect good ef10ffdd4e8bebdc7ae915a897fa6aa11668882c
# bad: [69cb15bd0578150f9edaf8c26d004f08749c0d87] netrom: Fix a data-race around sysctl_netrom_obsolescence_count_initialiser
git bisect bad 69cb15bd0578150f9edaf8c26d004f08749c0d87
# bad: [0339b5bfd90480afce66a4e058c8c14d521be801] net: ethernet: ti: add missing of_node_put before return
git bisect bad 0339b5bfd90480afce66a4e058c8c14d521be801
# good: [a22959781a89cb5c10d9ea0a4a5f206fc47b363e] fs/ntfs3: Disable ATTR_LIST_ENTRY size check
git bisect good a22959781a89cb5c10d9ea0a4a5f206fc47b363e
# bad: [feb2673ad44c77ceda33f4573aba0a02f08cfaa6] usb: roles: don't get/set_role() when usb_role_switch is unregistered
git bisect bad feb2673ad44c77ceda33f4573aba0a02f08cfaa6
# good: [3ad4cf481b5f1e4ab9eb5c4fb1678b42d23e2046] platform/x86: intel-vbtn: Stop calling "VBDL" from notify_handler
git bisect good 3ad4cf481b5f1e4ab9eb5c4fb1678b42d23e2046
# good: [4bdbf7be6a24066bca519cfb2f8aeb1ec56c2e4e] x86/ftrace: Use alternative RET encoding
git bisect good 4bdbf7be6a24066bca519cfb2f8aeb1ec56c2e4e
# bad: [ee64cc371623f4eac6bf543b842a8956b419b9b6] usb: cdnsp: blocked some cdns3 specific code
git bisect bad ee64cc371623f4eac6bf543b842a8956b419b9b6
# bad: [fbdd7ca1b50202aa535202c30ea2bc5be50bd3e0] x86/alternative: Make custom return thunk unconditional
git bisect bad fbdd7ca1b50202aa535202c30ea2bc5be50bd3e0
# skip: [09ae122959920bbe0b441e49c24ffe75cf1a9637] Revert "x86/alternative: Make custom return thunk unconditional"
git bisect skip 09ae122959920bbe0b441e49c24ffe75cf1a9637
# skip: [68fa28ce22a624dfcd81fdd4813cd5f81f6f0f5a] x86/returnthunk: Allow different return thunks
git bisect skip 68fa28ce22a624dfcd81fdd4813cd5f81f6f0f5a
# only skipped commits left to test
# possible first bad commit: [fbdd7ca1b50202aa535202c30ea2bc5be50bd3e0] x86/alternative: Make custom return thunk unconditional
# possible first bad commit: [09ae122959920bbe0b441e49c24ffe75cf1a9637] Revert "x86/alternative: Make custom return thunk unconditional"
# possible first bad commit: [68fa28ce22a624dfcd81fdd4813cd5f81f6f0f5a] x86/returnthunk: Allow different return thunks
I did git bisect to identify which change in the code repo caused the performance degradation. The log is below. It identifies 3 commits, which contain a small change around RETHUNK feature. The performance degradation might therefore be intentional to avoid security vulnerabilities.
# git bisect log 031a62a37cf72dc 91bdd3e0c3e] UBUNTU: Ubuntu- 5.15.0- 111.121 31a62a37cf72dc9 1bdd3e0c3e 7ab2a337434a239 96029338946] UBUNTU: Ubuntu- 5.15.0- 107.117 ab2a337434a2399 6029338946 dc7ae915a897fa6 aa11668882c] UBUNTU: Ubuntu- 5.15.0- 106.116 c7ae915a897fa6a a11668882c 0f9edaf8c26d004 f08749c0d87] netrom: Fix a data-race around sysctl_ netrom_ obsolescence_ count_initialis er f9edaf8c26d004f 08749c0d87 afce66a4e058c8c 14d521be801] net: ethernet: ti: add missing of_node_put before return fce66a4e058c8c1 4d521be801 5c10d9ea0a4a5f2 06fc47b363e] fs/ntfs3: Disable ATTR_LIST_ENTRY size check c10d9ea0a4a5f20 6fc47b363e ceda33f4573aba0 a02f08cfaa6] usb: roles: don't get/set_role() when usb_role_switch is unregistered eda33f4573aba0a 02f08cfaa6 4ab9eb5c4fb1678 b42d23e2046] platform/x86: intel-vbtn: Stop calling "VBDL" from notify_handler ab9eb5c4fb1678b 42d23e2046 6bca519cfb2f8ae b1ec56c2e4e] x86/ftrace: Use alternative RET encoding bca519cfb2f8aeb 1ec56c2e4e eac6bf543b842a8 956b419b9b6] usb: cdnsp: blocked some cdns3 specific code ac6bf543b842a89 56b419b9b6 aa535202c30ea2b c5be50bd3e0] x86/alternative: Make custom return thunk unconditional a535202c30ea2bc 5be50bd3e0 be0b441e49c24ff e75cf1a9637] Revert "x86/alternative: Make custom return thunk unconditional" e0b441e49c24ffe 75cf1a9637 dfcd81fdd4813cd 5f81f6f0f5a] x86/returnthunk: Allow different return thunks fcd81fdd4813cd5 f81f6f0f5a aa535202c30ea2b c5be50bd3e0] x86/alternative: Make custom return thunk unconditional be0b441e49c24ff e75cf1a9637] Revert "x86/alternative: Make custom return thunk unconditional" dfcd81fdd4813cd 5f81f6f0f5a] x86/returnthunk: Allow different return thunks
git bisect start
# bad: [c6f48204c530ee
git bisect bad c6f48204c530ee0
# good: [7d5ccdf5683ced
git bisect good 7d5ccdf5683ced7
# good: [ef10ffdd4e8beb
git bisect good ef10ffdd4e8bebd
# bad: [69cb15bd057815
git bisect bad 69cb15bd0578150
# bad: [0339b5bfd90480
git bisect bad 0339b5bfd90480a
# good: [a22959781a89cb
git bisect good a22959781a89cb5
# bad: [feb2673ad44c77
git bisect bad feb2673ad44c77c
# good: [3ad4cf481b5f1e
git bisect good 3ad4cf481b5f1e4
# good: [4bdbf7be6a2406
git bisect good 4bdbf7be6a24066
# bad: [ee64cc371623f4
git bisect bad ee64cc371623f4e
# bad: [fbdd7ca1b50202
git bisect bad fbdd7ca1b50202a
# skip: [09ae122959920b
git bisect skip 09ae122959920bb
# skip: [68fa28ce22a624
git bisect skip 68fa28ce22a624d
# only skipped commits left to test
# possible first bad commit: [fbdd7ca1b50202
# possible first bad commit: [09ae122959920b
# possible first bad commit: [68fa28ce22a624