All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>
To: linux-efi@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: jlee@suse.com, bp@alien8.de, luto@kernel.org, mst@redhat.com,
	ricardo.neri@intel.com, matt@codeblueprint.co.uk,
	ard.biesheuvel@linaro.org, ravi.v.shankar@intel.com,
	Sai Praneeth <sai.praneeth.prakhya@intel.com>
Subject: [PATCH 0/3] Use mm_struct and switch_mm() instead of manually
Date: Tue, 15 Aug 2017 12:18:23 -0700	[thread overview]
Message-ID: <1502824706-30762-1-git-send-email-sai.praneeth.prakhya@intel.com> (raw)

From: Sai Praneeth <sai.praneeth.prakhya@intel.com>

Presently, in x86, to invoke any efi function like
efi_set_virtual_address_map() or any efi_runtime_service() the code path
typically involves read_cr3() (save previous pgd), write_cr3()
(write efi_pgd) and calling efi function. Likewise after returning from
efi function the code path typically involves read_cr3() (save efi_pgd),
write_cr3() (write previous pgd). We do this couple of times in efi
subsystem of Linux kernel, so we can use a function (efi_switch_mm())
to do this. This improves readability and maintainability. Also, instead
of maintaining a separate struct "efi_scratch" to store/restore efi_pgd,
we can use mm_struct to do this.

I have tested this patch set against LUV, so I think I didn't break
any existing configurations. I have tested this patch set for
1. x86_64,
2. x86_32,
3. Mixed mode
with efi=old_map and for kexec kernel. Please let me know if I have
missed any other configurations.

Special thanks to Matt for his initial review.

Matt,
I have implemented efi_switch_mm() in "arch/x86/platform/efi/efi_64.c"
because it's used only by x86_64. Please let me know if you think it
should be in "drivers/firmware/efi/efi.c"

Andy and Michael,
As I am twiddling with memory management for the first time and I think
you are mm experts, could you please review efi_switch_mm() function
in "x86/efi: Use efi_switch_mm() rather than manually twiddling with cr3"

Sai Praneeth (3):
  efi: Use efi_mm in x86 as well as ARM
  x86/efi: Replace efi_pgd with efi_mm.pgd
  x86/efi: Use efi_switch_mm() rather than manually twiddling with cr3

 arch/x86/include/asm/efi.h           | 30 +++++++++----------
 arch/x86/platform/efi/efi_64.c       | 57 ++++++++++++++++++++++--------------
 arch/x86/platform/efi/efi_thunk_64.S |  2 +-
 drivers/firmware/efi/arm-runtime.c   |  9 ------
 drivers/firmware/efi/efi.c           |  9 ++++++
 include/linux/efi.h                  |  2 ++
 6 files changed, 62 insertions(+), 47 deletions(-)

-- 
2.1.4

             reply	other threads:[~2017-08-15 19:22 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-15 19:18 Sai Praneeth Prakhya [this message]
2017-08-15 19:18 ` [PATCH 1/3] efi: Use efi_mm in x86 as well as ARM Sai Praneeth Prakhya
2017-08-15 19:18 ` [PATCH 2/3] x86/efi: Replace efi_pgd with efi_mm.pgd Sai Praneeth Prakhya
2017-08-15 19:18   ` Sai Praneeth Prakhya
2017-08-15 19:18 ` [PATCH 3/3] x86/efi: Use efi_switch_mm() rather than manually twiddling with cr3 Sai Praneeth Prakhya
2017-08-15 21:46   ` Andy Lutomirski
2017-08-16  0:23     ` Sai Praneeth Prakhya
2017-08-16  0:23       ` Sai Praneeth Prakhya
2017-08-16  0:47       ` Andy Lutomirski
2017-08-16  0:47         ` Andy Lutomirski
2017-08-16  9:31     ` Ard Biesheuvel
2017-08-16  9:53       ` Mark Rutland
2017-08-16  9:53         ` Mark Rutland
2017-08-16 10:07         ` Will Deacon
2017-08-16 10:07           ` Will Deacon
2017-08-16 11:03           ` Mark Rutland
2017-08-16 12:57             ` Matt Fleming
2017-08-16 12:57               ` Matt Fleming
2017-08-16 16:14               ` Andy Lutomirski
2017-08-16 16:14                 ` Andy Lutomirski
2017-08-15 22:35                 ` Mark Rutland
2017-08-17 10:35                   ` Will Deacon
2017-08-17 15:52                     ` Andy Lutomirski
2017-08-17 15:52                       ` Andy Lutomirski
2017-08-21 10:33                       ` Peter Zijlstra
2017-08-21 10:33                         ` Peter Zijlstra
2017-08-21 13:56                         ` Andy Lutomirski
2017-08-21 13:56                           ` Andy Lutomirski
2017-08-21 14:08                           ` Peter Zijlstra
2017-08-21 15:23                             ` Andy Lutomirski
2017-08-21 15:23                               ` Andy Lutomirski
2017-08-21 15:59                               ` Peter Zijlstra
2017-08-21 15:59                                 ` Peter Zijlstra
2017-08-21 16:08                                 ` Ard Biesheuvel
2017-08-21 16:08                                   ` Ard Biesheuvel
2017-08-23 22:52                               ` Sai Praneeth Prakhya
2017-08-23 22:52                                 ` Sai Praneeth Prakhya
2017-08-25 15:13                                 ` Andy Lutomirski
2017-08-25 15:13                                   ` Andy Lutomirski
2017-08-21 17:24                           ` Peter Zijlstra
2017-08-25  2:36     ` Sai Praneeth Prakhya
2017-08-25 15:13       ` Andy Lutomirski
2017-12-17  0:05 [PATCH 0/3] Use mm_struct and switch_mm() instead of manually Sai Praneeth Prakhya
2017-12-17  0:05 ` Sai Praneeth Prakhya
2017-12-17 21:09 ` Bhupesh Sharma
2017-12-19  6:23   ` Prakhya, Sai Praneeth
2017-12-19  6:23     ` Prakhya, Sai Praneeth

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=1502824706-30762-1-git-send-email-sai.praneeth.prakhya@intel.com \
    --to=sai.praneeth.prakhya@intel.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=bp@alien8.de \
    --cc=jlee@suse.com \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=mst@redhat.com \
    --cc=ravi.v.shankar@intel.com \
    --cc=ricardo.neri@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.