Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp208pxf; Wed, 24 Mar 2021 18:52:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwUp6gxqrGhGrVRcCusX0mYnXd2XM1ph4f0983g+ag3feT+ERlxg9KKSTkztW8vAwWyoBLt X-Received: by 2002:a17:906:29c3:: with SMTP id y3mr6532686eje.430.1616637133258; Wed, 24 Mar 2021 18:52:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616637133; cv=none; d=google.com; s=arc-20160816; b=vrnSFgE9N6pE0ZfLWA7NxzfvoLWSk6tt0VmJffioeC9JYrESy2oVBVuQ1gY682/RMG Sj2ujYLAJ4VahcfV7rlQA9GhbJx707yBKSd8xWR3goFpm7pSy8r0hf3Drox5cJBUNbT3 Grz2p1WLn+SDQG837A2Rxotsu6/7+42sOhPpoJ6qwXOBdHuUDgFyjbia1jtpjniRgRDR 7VV3rQNPtuZ0HLDU92ih43QOQ3MxVLbScE5EF1EUDOL2PEx2kQQGNof7L2t71m8UleqF Qg296HBdxLKkhhkVjWXjDzCVQmCKRccWhZPuqFJCarPORx18I0t3VGlkuctoNWaE52W5 MB9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=Vrm8f8uMXhBtU09YtkzBI/XKDbNToJPV6EFHsEfNkJQ=; b=q0I3JYIUCDo45zPlE0yKIBuEICpA09dLfhLV65gzhy/xJCA0Qb/8l2raQCABJE4ZDf 7SSaSaySz5dxGqO1+SiPQuprxB/+LackVkk+5YnuCWi//9wpJglC3ymXaZbYzERYfu8s iZ+HTDN6TLrgHqd4gWu17VHDyJMCUkFTnqpijD5YySrv47GOwwGjD/xhuqYt2a7ntLve r5hPA9upUn3y+Baj1yL0TWTgcTRO6etkbi7mbc7chqmG8KGlojF6E8HZ8og/vyr06rL1 U9FmbOxv7kBTdC6I1bUywYhYtZ9Bo2guRVZnVM9wgnNXu1Eph4N9NQG92t7kZjE+fEH8 WDAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jbl05DxG; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d20si3013427eds.530.2021.03.24.18.51.49; Wed, 24 Mar 2021 18:52:13 -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; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jbl05DxG; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233506AbhCXI33 (ORCPT + 99 others); Wed, 24 Mar 2021 04:29:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:41344 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233472AbhCXI32 (ORCPT ); Wed, 24 Mar 2021 04:29:28 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 918FD619F7 for ; Wed, 24 Mar 2021 08:29:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1616574568; bh=vlJ9js9b5fHVG8v7WcK4E//fEklX9BQWdi27y5hQum4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=jbl05DxGc7eu5VEE2/O0UAF7/J1JeJxciE24kTfb+VlGWmJApyP+bARo8DDatOpxV 6wX63LF9Fh2uSqedSwrsj0FFq8/HOqgc5lwG0q6L1BSbIFGH5o/PZJ4//TzopW7s4B Ry32n0BezAlUvSHNLi65EpoGhPt/przVtHzzTVNO9ct1QNkQw9kGQrczv4kCfkfwVT TVAimwIgrpy/nxvtvSgWxRsTfyRSom2YfnwomtnaXIEr8Q/ciNx0AsEDBsxyZn2gUt mlGmgK3tPTl8ZtBD+9BaVQOOZGXKFOAX1gsuup+5Pxpphn6gE+M8U0h654SKSZqP8o f0+7xNOK35/rQ== Received: by mail-ot1-f45.google.com with SMTP id h6-20020a0568300346b02901b71a850ab4so22240391ote.6 for ; Wed, 24 Mar 2021 01:29:28 -0700 (PDT) X-Gm-Message-State: AOAM5338e/6OxhPzBf/dmUEsI0BaURwANA7xD6I7YiaR1fLd/Ob1wJfP F2RyAKUpUfA62Q4AJ+lX/bV66SK2CjlKaQv640w= X-Received: by 2002:a9d:12cb:: with SMTP id g69mr2155076otg.77.1616574567849; Wed, 24 Mar 2021 01:29:27 -0700 (PDT) MIME-Version: 1.0 References: <6c819e1944044bfa8f88574beb094ef5@huawei.com> In-Reply-To: <6c819e1944044bfa8f88574beb094ef5@huawei.com> From: Ard Biesheuvel Date: Wed, 24 Mar 2021 09:29:16 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [question] insert ko failed because count_plts return 0 when CONFIG_RANDOMIZE_BASE is not set To: "chenjun (AM)" Cc: "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Will Deacon , Catalin Marinas , "Xiangrui (Euler)" , liuyanshi , wuzengkun Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 24 Mar 2021 at 08:27, chenjun (AM) wrote: > > Hi > > I make a Image for arm64 (without CONFIG_RANDOMIZE_BASE). And a ko (13M) > can not be inserted. > How many large modules have you loaded already? The module region is only 128 MB, so if your modules are huge, you may run out of space. Please check the kernel VA address and the load address of the module, and check whether they are more than 128 MB apart. > WARNING: CPU: 2 PID: 1998 at arch/arm64/kernel/module-plts.c:39 > module_emit_plt_entry+0x100/0x118 > ... > Call trace: > module_emit_plt_entry+0x100/0x118 > apply_relocate_add+0x34c/0x570 > ... > > I think the problem is that: > in apply_relocate_add: > case R_AARCH64_CALL26: > ovf = reloc_insn_imm(RELOC_OP_PREL, loc, val, 2, 26, > AARCH64_INSN_IMM_26); > > if (IS_ENABLED(CONFIG_ARM64_MODULE_PLTS) && > ovf == -ERANGE) { > val = module_emit_plt_entry(me, sechdrs, > loc, &rel[i], sym); realoc_insn_imm return -ERANGE (because the ko is > too big?) > > in module_emit_plt_entry: > WARN_ON(pltsec->plt_num_entries > pltsec->plt_max_entries) > pltsec->plt_max_entries is 0 if CONFIG_RANDOMIZE_BASE is not be set. > > a257e02 arm64/kernel: don't ban ADRP to work around Cortex-A53 erratum > #843419 > static unsigned int count_plts(Elf64_Sym *syms, Elf64_Rela *rela, int > num, > - Elf64_Word dstidx) > + Elf64_Word dstidx, Elf_Shdr *dstsec) > { > ... > switch (ELF64_R_TYPE(rela[i].r_info)) { > case R_AARCH64_JUMP26: > case R_AARCH64_CALL26: > + if (!IS_ENABLED(CONFIG_RANDOMIZE_BASE)) > + break; > + > > Why we need break if !IS_ENABLED(CONFIG_RANDOMIZE_BASE)? or any > restrictions on ko? > > I comment out this part of the code. the ko could be inserted, and seems > to work well. So is it a accepted way? or any solution for my case? > > -- > Regards > Chen Jun >