From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stanislav Kozina Subject: Re: [PATCH] x86/kbuild: enable modversions for symbols exported from asm Date: Fri, 9 Dec 2016 15:36:04 +0100 Message-ID: <249321c0-bcb1-f9d8-50f4-c083b656d02e@redhat.com> References: <20161129135118.24696-1-kilobyte@angband.pl> <30bb2db4-47bd-0c35-8328-ef032b551f06@suse.com> <20161129195721.GI2697@decadent.org.uk> <20161201051852.28dc335f@roar.ozlabs.ibm.com> <20161201041325.GX35881@redhat.com> <20161201153215.43b6cec7@roar.ozlabs.ibm.com> <20161201152039.GB35881@redhat.com> <20161209135041.5ff12770@roar.ozlabs.ibm.com> <0937c184-1946-c494-56b6-c38fd0b632c2@redhat.com> <20161209181459.1f0a4fed@roar.ozlabs.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20161209181459.1f0a4fed@roar.ozlabs.ibm.com> Sender: linux-kbuild-owner@vger.kernel.org To: Nicholas Piggin Cc: Don Zickus , Linus Torvalds , Ben Hutchings , Michal Marek , Adam Borowski , Greg Kroah-Hartman , Linux Kbuild mailing list , Debian kernel maintainers , "linux-arch@vger.kernel.org" , Arnd Bergmann , Ingo Molnar , Linux Kernel Mailing List List-Id: linux-arch.vger.kernel.org >>>> The question is how to provide a similar guarantee if a different way? >>> As a tool to aid distro reviewers, modversions has some value, but the >>> debug info parsing tools that have been mentioned in this thread seem >>> superior (not that I've tested them). >> On the other hand the big advantage of modversions is that it also >> verifies the checksum during runtime (module loading). In other words, I >> believe that any other solution should still generate some form of >> checksum/watermark which can be easily checked for compatibility on >> module load. >> It should not be hard to add to the DWARF based tools though. We'd just >> parse DWARF data instead of the C code. > A runtime check is still done, with per-module vermagic which distros > can change when they bump the ABI version. Is it really necessary to > have more than that (i.e., per-symbol versioning)? From my point of view, it is. We need to allow changing ABI for some modules while maintaining it for others. In fact I think that there should be version not only for every exported symbol (in the EXPORT_SYMBOL() sense), but also for every public type (in the sense of eg. structure defined in the public header file). Thanks, -Stanislav From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com ([209.132.183.28]:46262 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932594AbcLIOgK (ORCPT ); Fri, 9 Dec 2016 09:36:10 -0500 Subject: Re: [PATCH] x86/kbuild: enable modversions for symbols exported from asm References: <20161129135118.24696-1-kilobyte@angband.pl> <30bb2db4-47bd-0c35-8328-ef032b551f06@suse.com> <20161129195721.GI2697@decadent.org.uk> <20161201051852.28dc335f@roar.ozlabs.ibm.com> <20161201041325.GX35881@redhat.com> <20161201153215.43b6cec7@roar.ozlabs.ibm.com> <20161201152039.GB35881@redhat.com> <20161209135041.5ff12770@roar.ozlabs.ibm.com> <0937c184-1946-c494-56b6-c38fd0b632c2@redhat.com> <20161209181459.1f0a4fed@roar.ozlabs.ibm.com> From: Stanislav Kozina Message-ID: <249321c0-bcb1-f9d8-50f4-c083b656d02e@redhat.com> Date: Fri, 9 Dec 2016 15:36:04 +0100 MIME-Version: 1.0 In-Reply-To: <20161209181459.1f0a4fed@roar.ozlabs.ibm.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: Nicholas Piggin Cc: Don Zickus , Linus Torvalds , Ben Hutchings , Michal Marek , Adam Borowski , Greg Kroah-Hartman , Linux Kbuild mailing list , Debian kernel maintainers , "linux-arch@vger.kernel.org" , Arnd Bergmann , Ingo Molnar , Linux Kernel Mailing List Message-ID: <20161209143604.wKHqhOgIbG24Cjga756bBPlI9HbGZak50NGJc8WRUBQ@z> >>>> The question is how to provide a similar guarantee if a different way? >>> As a tool to aid distro reviewers, modversions has some value, but the >>> debug info parsing tools that have been mentioned in this thread seem >>> superior (not that I've tested them). >> On the other hand the big advantage of modversions is that it also >> verifies the checksum during runtime (module loading). In other words, I >> believe that any other solution should still generate some form of >> checksum/watermark which can be easily checked for compatibility on >> module load. >> It should not be hard to add to the DWARF based tools though. We'd just >> parse DWARF data instead of the C code. > A runtime check is still done, with per-module vermagic which distros > can change when they bump the ABI version. Is it really necessary to > have more than that (i.e., per-symbol versioning)? From my point of view, it is. We need to allow changing ABI for some modules while maintaining it for others. In fact I think that there should be version not only for every exported symbol (in the EXPORT_SYMBOL() sense), but also for every public type (in the sense of eg. structure defined in the public header file). Thanks, -Stanislav