linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kairui Song <kasong@redhat.com>
To: Baoquan He <bhe@redhat.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Borislav Petkov <bp@alien8.de>,
	Junichi Nomura <j-nomura@ce.jp.nec.com>,
	Dave Young <dyoung@redhat.com>,
	Chao Fan <fanc.fnst@cn.fujitsu.com>,
	"x86@kernel.org" <x86@kernel.org>,
	"kexec@lists.infradead.org" <kexec@lists.infradead.org>
Subject: Re: [RFC PATCH] kexec, x86/boot: map systab region in identity mapping before accessing it
Date: Fri, 19 Apr 2019 17:39:28 +0800	[thread overview]
Message-ID: <CACPcB9ebt2pGuyDaevehU6B9dcKduGKNTo12qsE-gFXYBpiYjg@mail.gmail.com> (raw)
In-Reply-To: <20190419085804.GD11060@MiWiFi-R3L-srv>

On Fri, Apr 19, 2019 at 4:58 PM Baoquan He <bhe@redhat.com> wrote:
>
> On 04/19/19 at 04:34pm, Kairui Song wrote:
> >  /* Locates and clears a region for a new top level page table. */
> >  void initialize_identity_maps(void)
> >  {
> > -     /* If running as an SEV guest, the encryption mask is required. */
> > -     set_sev_encryption_mask();
> > -
> > -     /* Exclude the encryption mask from __PHYSICAL_MASK */
> > -     physical_mask &= ~sme_me_mask;
> > -
> > -     /* Init mapping_info with run-time function/buffer pointers. */
> > -     mapping_info.alloc_pgt_page = alloc_pgt_page;
> > -     mapping_info.context = &pgt_data;
> > -     mapping_info.page_flag = __PAGE_KERNEL_LARGE_EXEC | sme_me_mask;
> > -     mapping_info.kernpg_flag = _KERNPG_TABLE;
> > -
> > -     /*
> > -      * It should be impossible for this not to already be true,
> > -      * but since calling this a second time would rewind the other
> > -      * counters, let's just make sure this is reset too.
> > -      */
> > -     pgt_data.pgt_buf_offset = 0;
> > -
> > -     /*
> > -      * If we came here via startup_32(), cr3 will be _pgtable already
> > -      * and we must append to the existing area instead of entirely
> > -      * overwriting it.
> > -      *
> > -      * With 5-level paging, we use '_pgtable' to allocate the p4d page table,
> > -      * the top-level page table is allocated separately.
> > -      *
> > -      * p4d_offset(top_level_pgt, 0) would cover both the 4- and 5-level
> > -      * cases. On 4-level paging it's equal to 'top_level_pgt'.
> > -      */
> > -     top_level_pgt = read_cr3_pa();
> > -     if (p4d_offset((pgd_t *)top_level_pgt, 0) == (p4d_t *)_pgtable) {
> > -             debug_putstr("booted via startup_32()\n");
> > -             pgt_data.pgt_buf = _pgtable + BOOT_INIT_PGT_SIZE;
> > -             pgt_data.pgt_buf_size = BOOT_PGT_SIZE - BOOT_INIT_PGT_SIZE;
> > -             memset(pgt_data.pgt_buf, 0, pgt_data.pgt_buf_size);
> > -     } else {
> > -             debug_putstr("booted via startup_64()\n");
> > -             pgt_data.pgt_buf = _pgtable;
> > -             pgt_data.pgt_buf_size = BOOT_PGT_SIZE;
> > -             memset(pgt_data.pgt_buf, 0, pgt_data.pgt_buf_size);
> > +     top_level_pgt = early_boot_top_pgt;
> > +     if ((p4d_t *)top_level_pgt != (p4d_t *)_pgtable)
> >               top_level_pgt = (unsigned long)alloc_pgt_page(&pgt_data);
>
> Kairui, will you make a patchset to include these changes separately
> later on? I don't get the purposes of code changes. E.g here, I
> don't know why you introduce a new variable early_boot_top_pgt, and
> allocate the page table, even though they have been done in the old
> initialize_identity_maps().
>
> Thanks
> Baoquan
>

OK, right, it's not a good idea to mess up things together, I'll
resend the patch, and will sent the cleanup separately. Without clean
up it may bring in some extra burden with certain kernel config, but
that should be OK for the fix.

-- 
Best Regards,
Kairui Song

  reply	other threads:[~2019-04-19 19:52 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-08 23:10 [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel Junichi Nomura
2019-04-10 17:14 ` Borislav Petkov
2019-04-10 23:34   ` Junichi Nomura
2019-04-11  8:09     ` Borislav Petkov
2019-04-11  8:16       ` Junichi Nomura
2019-04-11  8:37         ` Borislav Petkov
2019-04-11  9:13           ` Junichi Nomura
2019-04-11  9:21             ` Boris Petkov
2019-04-11  9:32               ` Junichi Nomura
2019-04-11  9:40                 ` Boris Petkov
2019-04-11 12:58                   ` Borislav Petkov
2019-04-12  2:54                     ` Junichi Nomura
2019-04-12  8:49                       ` Borislav Petkov
2019-04-12 13:35                         ` Borislav Petkov
2019-04-15  7:01                           ` Junichi Nomura
2019-04-15  9:07                             ` Borislav Petkov
2019-04-15 10:25                               ` Borislav Petkov
2019-04-15 23:00                                 ` Junichi Nomura
2019-04-15 23:14                                   ` Junichi Nomura
2019-04-16  9:45                                     ` Borislav Petkov
2019-04-16 23:09                                       ` kexec crash on OVMF i386 + x86_64 kernel (Re: [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel) Junichi Nomura
2019-04-17  5:14                                         ` Dave Young
2019-04-17 17:57                                           ` Prakhya, Sai Praneeth
2019-04-16  9:40                                   ` [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel Borislav Petkov
2019-04-16  9:52                                     ` [PATCH] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernels Borislav Petkov
2019-04-16 10:02                                       ` Ingo Molnar
2019-04-16 10:31                                         ` Borislav Petkov
2019-04-16 11:41                                       ` Dave Young
2019-04-16 13:22                                         ` Borislav Petkov
2019-04-17  1:38                                           ` Dave Young
2019-04-17  4:57                                             ` Dave Young
2019-04-17  6:00                                               ` Kairui Song
2019-04-17  7:08                                                 ` Dave Young
2019-04-17  8:22                                             ` Borislav Petkov
2019-04-18  1:24                                               ` Dave Young
2019-04-19  8:34                                       ` [RFC PATCH] kexec, x86/boot: map systab region in identity mapping before accessing it Kairui Song
2019-04-19  8:58                                         ` Baoquan He
2019-04-19  9:39                                           ` Kairui Song [this message]
2019-04-16 22:44                                     ` [PATCH v4] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernel Junichi Nomura
2019-04-17  7:02                                       ` Dave Young
2019-04-17  8:54                                         ` Borislav Petkov
2019-04-17  9:02                                           ` Borislav Petkov
2019-04-17 10:31                                           ` Chao Fan
2019-04-11  8:42         ` Baoquan He
2019-04-11  9:14           ` Junichi Nomura
2019-04-12  0:23             ` Baoquan He
2019-04-15  7:46               ` Dave Young
2019-06-06 19:22 ` [tip:x86/boot] x86/boot: Use efi_setup_data for searching RSDP on kexec-ed kernels tip-bot for Junichi Nomura
2019-04-19 10:17 [RFC PATCH] kexec, x86/boot: map systab region in identity mapping before accessing it Borislav Petkov
2019-04-19 10:50 ` Baoquan He
2019-04-19 10:55   ` Baoquan He
2019-04-19 11:20   ` Kairui Song
2019-04-19 11:34     ` Borislav Petkov
2019-04-19 11:50       ` Kairui Song
2019-04-19 11:28   ` Borislav Petkov
2019-04-19 11:36     ` Borislav Petkov
2019-04-22 14:33       ` Baoquan He
2019-04-22 15:17         ` Borislav Petkov
2019-04-26  9:51           ` Baoquan He
2019-04-26  9:58             ` Borislav Petkov
2019-04-26 10:16               ` Baoquan He
2019-04-19 11:44     ` Baoquan He

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CACPcB9ebt2pGuyDaevehU6B9dcKduGKNTo12qsE-gFXYBpiYjg@mail.gmail.com \
    --to=kasong@redhat.com \
    --cc=bhe@redhat.com \
    --cc=bp@alien8.de \
    --cc=dyoung@redhat.com \
    --cc=fanc.fnst@cn.fujitsu.com \
    --cc=j-nomura@ce.jp.nec.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).