Messages in this thread |  | | From | Arnd Bergmann <> | Date | Mon, 14 Aug 2017 10:50:24 +0200 | Subject | Re: [PATCH v8 09/14] lockdep: Apply crossrelease to completions |
| |
On Mon, Aug 7, 2017 at 9:12 AM, Byungchul Park <byungchul.park@lge.com> wrote: > Although wait_for_completion() and its family can cause deadlock, the > lock correctness validator could not be applied to them until now, > because things like complete() are usually called in a different context > from the waiting context, which violates lockdep's assumption. > > Thanks to CONFIG_LOCKDEP_CROSSRELEASE, we can now apply the lockdep > detector to those completion operations. Applied it. > > Signed-off-by: Byungchul Park <byungchul.park@lge.com>
This patch introduced a significant growth in kernel stack usage for a small set of functions. I see two new warnings for functions that get tipped over the 1024 or 2048 byte frame size limit in linux-next (with a few other patches applied):
Before:
drivers/md/dm-integrity.c: In function 'write_journal': drivers/md/dm-integrity.c:827:1: error: the frame size of 504 bytes is larger than xxx bytes [-Werror=frame-larger-than=] drivers/mmc/core/mmc_test.c: In function 'mmc_test_area_io_seq': drivers/mmc/core/mmc_test.c:1491:1: error: the frame size of 680 bytes is larger than 104 bytes [-Werror=frame-larger-than=]
After:
drivers/md/dm-integrity.c: In function 'write_journal': drivers/md/dm-integrity.c:827:1: error: the frame size of 1280 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] drivers/mmc/core/mmc_test.c: In function 'mmc_test_area_io_seq': drivers/mmc/core/mmc_test.c:1491:1: error: the frame size of 1072 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
I have not checked in detail why this happens, but I'm guessing that there is an overall increase in stack usage with CONFIG_LOCKDEP_COMPLETE in functions using completions, and I think it would be good to try to come up with a version that doesn't add as much.
Arnd
|  |