Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3080227pxj; Mon, 7 Jun 2021 01:31:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyW+KHEgLmszsBnQOe69GSdYV1j9E5QvqBNHuEicL5ajR1TVZCOEVmuz5IpdRNwO8pcY7zC X-Received: by 2002:aa7:c983:: with SMTP id c3mr18725379edt.58.1623054717980; Mon, 07 Jun 2021 01:31:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623054717; cv=none; d=google.com; s=arc-20160816; b=vPi3/GdYxci6ScplVfJWi/zNlPK4P7MwUmmXcfriilNbmYfuUsAZKf85YmbUBlQ0yn 3R5htvxSoOw6WPwAFJv+LTjT9E0jzKjHhwHO/i8OfwqVTK6sDhH6tkI3asaaRWWmxPNK w4v7V32ojKibCzK9HpeERRAj3WOMI93acnVr+X33EWXdjeGw9Eiflkt6ZgG/6JTvFdhd 00olw2wYO7D5bG5rJm9p2E9YdlABVSB0EvUsN59GWDbc0lOilzsGe1naej+4ZeJp+lU+ Z1rXq3UCQQqjbXbayEdxdJvvvsJLMLDUsS+fUKMjFcXdxSj0bV5gQx7o4+EXLmYdTfXR y1Zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=QgReGnHlJp7NfiZrnCqCxcyFprwftxgAfhsGZDprWx8=; b=yGMU3Eg+uk744TATGKd5ea6d/kTK48QR+62lYPWFH0F6bk+CC9P6ciq0XoRWKVqLEn GrzpUAq3GLQAPB9XxYp0xLGlbZfrYjw3vqDvfMhgsAFU4zf3+ew4FPQTcu7Zrf9dw1YM hycKG7HlAhwhU+NFBamaMLHijDbI8uM6R8kgTS63LlEPR9z/DCP4rrIVDqXg1euMPWB/ 2YiPsOkZ29Rt+OfgLB7VB9D43wARooMD8qPSaFAooEB5G+cghspxMRJ66dVeMbf3xY+7 QBlleqV794mtplmN0MSZUyCxEOAKTwl4xPbCvOA292lTlPR+APMlEd82gA3I2pNeQrff hikQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y8si10457427edd.181.2021.06.07.01.31.35; Mon, 07 Jun 2021 01:31:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230225AbhFGIch (ORCPT + 99 others); Mon, 7 Jun 2021 04:32:37 -0400 Received: from szxga02-in.huawei.com ([45.249.212.188]:3444 "EHLO szxga02-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230200AbhFGIcf (ORCPT ); Mon, 7 Jun 2021 04:32:35 -0400 Received: from dggemv704-chm.china.huawei.com (unknown [172.30.72.53]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4Fz61l5hvdz6wPm; Mon, 7 Jun 2021 16:27:39 +0800 (CST) Received: from dggpemm500001.china.huawei.com (7.185.36.107) by dggemv704-chm.china.huawei.com (10.3.19.47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Mon, 7 Jun 2021 16:30:41 +0800 Received: from [10.174.177.243] (10.174.177.243) by dggpemm500001.china.huawei.com (7.185.36.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.2; Mon, 7 Jun 2021 16:30:40 +0800 Subject: Re: [PATCH v2 00/15] init_mm: cleanup ARCH's text/data/brk setup code To: Christophe Leroy , Mike Rapoport CC: , , , , , , , , "Andrew Morton" , , , , References: <20210604070633.32363-1-wangkefeng.wang@huawei.com> <481056ab-686e-9f42-3b8a-b31941f58af6@huawei.com> <006eb573-5a20-1ac7-6234-338d11346a08@csgroup.eu> From: Kefeng Wang Message-ID: Date: Mon, 7 Jun 2021 16:30:40 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <006eb573-5a20-1ac7-6234-338d11346a08@csgroup.eu> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemm500001.china.huawei.com (7.185.36.107) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021/6/7 13:48, Christophe Leroy wrote: > Hi Kefeng, > > Le 07/06/2021 à 02:55, Kefeng Wang a écrit : >> >> On 2021/6/7 5:29, Mike Rapoport wrote: >>> Hello Kefeng, >>> >>> On Fri, Jun 04, 2021 at 03:06:18PM +0800, Kefeng Wang wrote: >>>> Add setup_initial_init_mm() helper, then use it >>>> to cleanup the text, data and brk setup code. >>>> >>>> v2: >>>> - change argument from "char *" to "void *" setup_initial_init_mm() >>>>    suggested by Geert Uytterhoeven >>>> - use NULL instead of (void *)0 on h8300 and m68k >>>> - collect ACKs >>>> >>>> Cc: linux-snps-arc@lists.infradead.org >>>> Cc: linux-arm-kernel@lists.infradead.org >>>> Cc: linux-csky@vger.kernel.org >>>> Cc: uclinux-h8-devel@lists.sourceforge.jp >>>> Cc: linux-m68k@lists.linux-m68k.org >>>> Cc: openrisc@lists.librecores.org >>>> Cc: linuxppc-dev@lists.ozlabs.org >>>> Cc: linux-riscv@lists.infradead.org >>>> Cc: linux-sh@vger.kernel.org >>>> Cc: linux-s390@vger.kernel.org >>>> Kefeng Wang (15): >>>>    mm: add setup_initial_init_mm() helper >>>>    arc: convert to setup_initial_init_mm() >>>>    arm: convert to setup_initial_init_mm() >>>>    arm64: convert to setup_initial_init_mm() >>>>    csky: convert to setup_initial_init_mm() >>>>    h8300: convert to setup_initial_init_mm() >>>>    m68k: convert to setup_initial_init_mm() >>>>    nds32: convert to setup_initial_init_mm() >>>>    nios2: convert to setup_initial_init_mm() >>>>    openrisc: convert to setup_initial_init_mm() >>>>    powerpc: convert to setup_initial_init_mm() >>>>    riscv: convert to setup_initial_init_mm() >>>>    s390: convert to setup_initial_init_mm() >>>>    sh: convert to setup_initial_init_mm() >>>>    x86: convert to setup_initial_init_mm() >>> I might be missing something, but AFAIU the init_mm.start_code and >>> other >>> fields are not used really early so the new setup_initial_init_mm() >>> function can be called in the generic code outside setup_arch(), e.g in >>> mm_init(). >> >> Hi Mike, each architecture has their own value, not the same, eg m68K >> and >> >> h8300, also the name of the text/code/brk is different in some arch, >> so I keep >> >> unchanged. > > What you could do is to define a __weak function that architectures > can override and call that function from mm_init() as suggested by Mike, > > Something like: > > void __weak setup_initial_init_mm(void) > { >     init_mm.start_code = (unsigned long)_stext; >     init_mm.end_code = (unsigned long)_etext; >     init_mm.end_data = (unsigned long)_edata; >     init_mm.brk = (unsigned long)_end; > } > > Then only the few architecture that are different would override it. > > I see a few archictectures are usigne PAGE_OFFSET to set .start_code, > but it is likely that this is equivalent to _stext. Yes,  the __weak function is option, but the change is only covered 14 archs, there are 7 other archs(alpha  hexagon  ia64 microblaze  mips sparc  um xtensa)without related setup code. Also like x86, it has own brk , maybe there are some other different in some arch, so I think let's keep unchanged for now,  thanks. > > Christophe > . >