Message ID | 20220428070851.21985-1-manali.shukla@amd.com (mailing list archive) |
---|---|
Headers | show |
Series | Move npt test cases and NPT code improvements | expand |
On 4/28/2022 12:38 PM, Manali Shukla wrote: > If __setup_vm() is changed to setup_vm(), KUT will build tests with > PT_USER_MASK set on all PTEs. It is a better idea to move nNPT tests to their > own file so that tests don't need to fiddle with page tables midway. > > The quick approach to do this would be to turn the current main into a small > helper, without calling __setup_vm() from helper. > > setup_mmu_range() function in vm.c was modified to allocate new user pages to > implement nested page table. > > Current implementation of nested page table does the page table build up > statistically with 2048 PTEs and one pml4 entry. With newly implemented > routine, nested page table can be implemented dynamically based on the RAM size > of VM which enables us to have separate memory ranges to test various npt test > cases. > > Based on this implementation, minimal changes were required to be done in below > mentioned existing APIs: > npt_get_pde(), npt_get_pte(), npt_get_pdpe(). > > v1 -> v2 > Added new patch for building up a nested page table dynamically and did minimal > changes required to make it adaptable with old test cases. > > v2 -> v3 > Added new patch to change setup_mmu_range to use it in implementation of nested > page table. > Added new patches to correct indentation errors in svm.c, svm_npt.c and > svm_tests.c. > Used scripts/Lindent from linux source code to fix indentation errors. > > v3 -> v4 > Lindent script was not working as expected. So corrected indentation errors in > svm.c and svm_tests.c without using Lindent > > Manali Shukla (8): > x86: nSVM: Move common functionality of the main() to helper > run_svm_tests > x86: nSVM: Move all nNPT test cases from svm_tests.c to a separate > file. > x86: nSVM: Allow nSVM tests run with PT_USER_MASK enabled > x86: Improve set_mmu_range() to implement npt > x86: nSVM: Build up the nested page table dynamically > x86: nSVM: Correct indentation for svm.c > x86: nSVM: Correct indentation for svm_tests.c part-1 > x86: nSVM: Correct indentation for svm_tests.c part-2 > > lib/x86/vm.c | 37 +- > lib/x86/vm.h | 3 + > x86/Makefile.common | 2 + > x86/Makefile.x86_64 | 2 + > x86/svm.c | 227 ++- > x86/svm.h | 5 +- > x86/svm_npt.c | 391 +++++ > x86/svm_tests.c | 3365 +++++++++++++++++++------------------------ > x86/unittests.cfg | 6 + > 9 files changed, 2035 insertions(+), 2003 deletions(-) > create mode 100644 x86/svm_npt.c > A gentle remainder Thank you Manali
On 5/9/2022 9:42 AM, Shukla, Manali wrote: > > > On 4/28/2022 12:38 PM, Manali Shukla wrote: >> If __setup_vm() is changed to setup_vm(), KUT will build tests with >> PT_USER_MASK set on all PTEs. It is a better idea to move nNPT tests to their >> own file so that tests don't need to fiddle with page tables midway. >> >> The quick approach to do this would be to turn the current main into a small >> helper, without calling __setup_vm() from helper. >> >> setup_mmu_range() function in vm.c was modified to allocate new user pages to >> implement nested page table. >> >> Current implementation of nested page table does the page table build up >> statistically with 2048 PTEs and one pml4 entry. With newly implemented >> routine, nested page table can be implemented dynamically based on the RAM size >> of VM which enables us to have separate memory ranges to test various npt test >> cases. >> >> Based on this implementation, minimal changes were required to be done in below >> mentioned existing APIs: >> npt_get_pde(), npt_get_pte(), npt_get_pdpe(). >> >> v1 -> v2 >> Added new patch for building up a nested page table dynamically and did minimal >> changes required to make it adaptable with old test cases. >> >> v2 -> v3 >> Added new patch to change setup_mmu_range to use it in implementation of nested >> page table. >> Added new patches to correct indentation errors in svm.c, svm_npt.c and >> svm_tests.c. >> Used scripts/Lindent from linux source code to fix indentation errors. >> >> v3 -> v4 >> Lindent script was not working as expected. So corrected indentation errors in >> svm.c and svm_tests.c without using Lindent >> >> Manali Shukla (8): >> x86: nSVM: Move common functionality of the main() to helper >> run_svm_tests >> x86: nSVM: Move all nNPT test cases from svm_tests.c to a separate >> file. >> x86: nSVM: Allow nSVM tests run with PT_USER_MASK enabled >> x86: Improve set_mmu_range() to implement npt >> x86: nSVM: Build up the nested page table dynamically >> x86: nSVM: Correct indentation for svm.c >> x86: nSVM: Correct indentation for svm_tests.c part-1 >> x86: nSVM: Correct indentation for svm_tests.c part-2 >> >> lib/x86/vm.c | 37 +- >> lib/x86/vm.h | 3 + >> x86/Makefile.common | 2 + >> x86/Makefile.x86_64 | 2 + >> x86/svm.c | 227 ++- >> x86/svm.h | 5 +- >> x86/svm_npt.c | 391 +++++ >> x86/svm_tests.c | 3365 +++++++++++++++++++------------------------ >> x86/unittests.cfg | 6 + >> 9 files changed, 2035 insertions(+), 2003 deletions(-) >> create mode 100644 x86/svm_npt.c >> > > A gentle remainder > > Thank you > Manali A gentle reminder for the review. Thank you, Manali
On 5/16/2022 10:15 AM, Shukla, Manali wrote: > > > On 5/9/2022 9:42 AM, Shukla, Manali wrote: >> >> >> On 4/28/2022 12:38 PM, Manali Shukla wrote: >>> If __setup_vm() is changed to setup_vm(), KUT will build tests with >>> PT_USER_MASK set on all PTEs. It is a better idea to move nNPT tests to their >>> own file so that tests don't need to fiddle with page tables midway. >>> >>> The quick approach to do this would be to turn the current main into a small >>> helper, without calling __setup_vm() from helper. >>> >>> setup_mmu_range() function in vm.c was modified to allocate new user pages to >>> implement nested page table. >>> >>> Current implementation of nested page table does the page table build up >>> statistically with 2048 PTEs and one pml4 entry. With newly implemented >>> routine, nested page table can be implemented dynamically based on the RAM size >>> of VM which enables us to have separate memory ranges to test various npt test >>> cases. >>> >>> Based on this implementation, minimal changes were required to be done in below >>> mentioned existing APIs: >>> npt_get_pde(), npt_get_pte(), npt_get_pdpe(). >>> >>> v1 -> v2 >>> Added new patch for building up a nested page table dynamically and did minimal >>> changes required to make it adaptable with old test cases. >>> >>> v2 -> v3 >>> Added new patch to change setup_mmu_range to use it in implementation of nested >>> page table. >>> Added new patches to correct indentation errors in svm.c, svm_npt.c and >>> svm_tests.c. >>> Used scripts/Lindent from linux source code to fix indentation errors. >>> >>> v3 -> v4 >>> Lindent script was not working as expected. So corrected indentation errors in >>> svm.c and svm_tests.c without using Lindent >>> >>> Manali Shukla (8): >>> x86: nSVM: Move common functionality of the main() to helper >>> run_svm_tests >>> x86: nSVM: Move all nNPT test cases from svm_tests.c to a separate >>> file. >>> x86: nSVM: Allow nSVM tests run with PT_USER_MASK enabled >>> x86: Improve set_mmu_range() to implement npt >>> x86: nSVM: Build up the nested page table dynamically >>> x86: nSVM: Correct indentation for svm.c >>> x86: nSVM: Correct indentation for svm_tests.c part-1 >>> x86: nSVM: Correct indentation for svm_tests.c part-2 >>> >>> lib/x86/vm.c | 37 +- >>> lib/x86/vm.h | 3 + >>> x86/Makefile.common | 2 + >>> x86/Makefile.x86_64 | 2 + >>> x86/svm.c | 227 ++- >>> x86/svm.h | 5 +- >>> x86/svm_npt.c | 391 +++++ >>> x86/svm_tests.c | 3365 +++++++++++++++++++------------------------ >>> x86/unittests.cfg | 6 + >>> 9 files changed, 2035 insertions(+), 2003 deletions(-) >>> create mode 100644 x86/svm_npt.c >>> >> >> A gentle remainder >> >> Thank you >> Manali > > A gentle reminder for the review. > > Thank you, > Manali A gentle reminder for the review. Hi Paolo, Sean, Shall I rebase and resend this series? Thank you, Manali
On Thu, Jun 09, 2022, Shukla, Manali wrote:
> Shall I rebase and resend this series?
If you have spare bandwidth and/or it's a trivial rebase, sure. I'm hoping to get
to this in the next few days; waiting for that may or may not save you time in the
long run (truly don't know at this point).