Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756213AbbDOQYi (ORCPT ); Wed, 15 Apr 2015 12:24:38 -0400 Received: from mail-wi0-f194.google.com ([209.85.212.194]:34344 "EHLO mail-wi0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754387AbbDOQYa (ORCPT ); Wed, 15 Apr 2015 12:24:30 -0400 MIME-Version: 1.0 In-Reply-To: References: <20150414053247.GI4412@treble.hsd1.ky.comcast.net> <20150414151110.GL4412@treble.hsd1.ky.comcast.net> <20150414162718.GC21044@dhcp128.suse.cz> <20150414170139.GA30740@dhcp-128-1.nay.redhat.com> <20150414184121.GD21044@dhcp128.suse.cz> <20150415021558.GA21518@dhcp-128-1.nay.redhat.com> Date: Wed, 15 Apr 2015 12:24:29 -0400 Message-ID: Subject: Re: [PATCH 2/2] livepatch: Fix the bug if the function name is larger than KSYM_NAME_LEN-1 From: Justin Keller To: Miroslav Benes Cc: Minfei Huang , Minfei Huang , Petr Mladek , Josh Poimboeuf , sjenning@redhat.com, jkosina@suse.cz, vojtech@suse.cz, live-patching@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3866 Lines: 89 I agree that 128+ function names are bad and there is no need for such long names, epically for compatibility with 80 char/line displays. I cannot think of an example even near as long as 127 characters. Are there even such long function names anywhere in the kernel? Justin On Wed, Apr 15, 2015 at 7:58 AM, Miroslav Benes wrote: > On Wed, 15 Apr 2015, Minfei Huang wrote: > >> On 04/15/15 at 10:30P, Miroslav Benes wrote: >> > On Wed, 15 Apr 2015, Minfei Huang wrote: >> > >> > > >> > > Yes, the function name can be changed, before the extra module is >> > > installed to the production system. >> > > >> > > We discuss around and around, there are still some confusion with it. >> > > >> > > 1) How does end user know that livepatch can _not_ support the function >> > > which length is larger than 127. We can not enforce the end user >> > > to know the livepatch and kallsyms code in detail. >> > > 2) How does end user use livepatch to patch running extra module, once >> > > the module is running in the production system, if the function name >> > > is insane. >> > > 3) The error message is ambiguity, if we try to patch the overlength >> > > function. We can give the error message clearly, once the function >> > > name is overlength. >> > > >> > > I think it is better that we can take more time on the people who will >> > > use livepatch frequently. >> > >> > Just my two cents, even if we admit that such change is worth it (and I >> > am still not convinced that it is the case), I think it would make sense >> > to fix it somewhere in kallsyms as Josh proposed. I suspect that when >> >> Ohhh... >> >> Fixing kallsyms to restrict the function name length maybe is not a good >> idea. I have no idea how we should do this, except for the coding >> problems. > > Well we do it now via scripts/kallsyms.c when vmlinux is built. Try it. We > apparently do not do it when kernel modules are built out of the tree (as > you demonstrated before). So the question is whether we should do it also > there. That is one thing we try to tell you. > > The other one is that 128 characters long function names are insane. > Probably that is what KSYM_NAME_LEN is for in the first place. Maybe you > could even try to add the check to checkpatch.pl. > >> > function names longer than KSYM_NAME_LEN were common there would be many >> > similar problems elsewhere in the kernel. >> > >> > That is you can prepare a patch to kallsyms and submit it there. Not sure >> > who is the maintainer but he might have an opinion about this... >> > >> > Thanks, >> > Miroslav >> >> Hold on, I get a scenario that livepatch may do fatal error. I am fine >> that livepatch do not support overlength function name, because it can >> not corrupt the kernel. >> >> Once there is a function name A is larger than 127, and another function >> name B is as longer as 127, it is disaster that we want to patch >> function B, if function name of first 127 is same between A and B. > > True, but see above. > >> Livepatch may find the function of A to patch it. So this patch(2/2) may >> be needed to fix the issue. > > Hm, but this patch is not the solution for the issue, or is it? You would > check only those first KSYM_NAME_LEN characters, but that would not > differentiate between A and B. Or maybe I do not follow. > > Thanks > Miroslav > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/