Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VT-d code reshuffle #1855

Closed
binbinwu1 opened this issue Nov 20, 2018 · 2 comments
Closed

VT-d code reshuffle #1855

binbinwu1 opened this issue Nov 20, 2018 · 2 comments
Assignees
Labels

Comments

@binbinwu1
Copy link
Contributor

Code cleanup and bug fix for VT-d code.

binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
dmar_uint -> dmar_unit
remove i in line 756 added by accident.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
Becuase the number of character of a line is 120.
Merge lines for a statement if needed.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
Move move public API to the bottom part of the file.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
Add an internal API to do action according to action function provided,
which can simplify the code.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
Check vtd translation enabling status when enable/disable translation
inside dmar_enable/disable_translation with spinlock.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
Current code doesn't init interrupt config when resume from S3.
The related register contect will be lost during S3.
This patch re-init these regiters.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
In current code, DMA remapping is enabled at very early stage, when there is no
device added.
Devices are added to VT-d context table when creating VMs.
There is potential risk that there may be device DMA transactions when DMA remapping is
enabled, but the device is not added to the VT-d context table. (Eg. this could happen in UEFI
enviroment when USB keyboard use in efi intenal shell.)

This patch defers DMA remapping enabling until vm creation.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
1. use error code defined in errno.h instead of 1.
2. panic if error occured while adding devices to VM0 domain.
3. panic if failed to reqeust irq for iommu.

The two panic added would only occurs before any VM starts running.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
Add an internal API to do action according to action function provided,
which can simplify the code.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
Check vtd translation enabling status when enable/disable translation
inside dmar_enable/disable_translation with spinlock.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
Current code doesn't init interrupt config when resume from S3.
The related register contect will be lost during S3.
This patch re-init these regiters.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
In current code, DMA remapping is enabled at very early stage, when there is no
device added.
Devices are added to VT-d context table when creating VMs.
There is potential risk that there may be device DMA transactions when DMA remapping is
enabled, but the device is not added to the VT-d context table. (Eg. this could happen in UEFI
enviroment when USB keyboard use in efi intenal shell.)

This patch defers DMA remapping enabling until vm creation.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
binbinwu1 added a commit to binbinwu1/acrn-hypervisor that referenced this issue Nov 20, 2018
1. use error code defined in errno.h instead of 1.
2. panic if error occured while adding devices to VM0 domain.
3. panic if failed to reqeust irq for iommu.

The two panic added would only occurs before any VM starts running.

Tracked-On: projectacrn#1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
lijinxia pushed a commit that referenced this issue Nov 20, 2018
dmar_uint -> dmar_unit
remove i in line 756 added by accident.

Tracked-On: #1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
lijinxia pushed a commit that referenced this issue Nov 20, 2018
Becuase the number of character of a line is 120.
Merge lines for a statement if needed.

Tracked-On: #1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
lijinxia pushed a commit that referenced this issue Nov 20, 2018
Move move public API to the bottom part of the file.

Tracked-On: #1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
lijinxia pushed a commit that referenced this issue Nov 20, 2018
Add an internal API to do action according to action function provided,
which can simplify the code.

Tracked-On: #1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
lijinxia pushed a commit that referenced this issue Nov 20, 2018
Check vtd translation enabling status when enable/disable translation
inside dmar_enable/disable_translation with spinlock.

Tracked-On: #1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
lijinxia pushed a commit that referenced this issue Nov 20, 2018
Current code doesn't init interrupt config when resume from S3.
The related register contect will be lost during S3.
This patch re-init these regiters.

Tracked-On: #1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
lijinxia pushed a commit that referenced this issue Nov 20, 2018
In current code, DMA remapping is enabled at very early stage, when there is no
device added.
Devices are added to VT-d context table when creating VMs.
There is potential risk that there may be device DMA transactions when DMA remapping is
enabled, but the device is not added to the VT-d context table. (Eg. this could happen in UEFI
enviroment when USB keyboard use in efi intenal shell.)

This patch defers DMA remapping enabling until vm creation.

Tracked-On: #1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
lijinxia pushed a commit that referenced this issue Nov 20, 2018
1. use error code defined in errno.h instead of 1.
2. panic if error occured while adding devices to VM0 domain.
3. panic if failed to reqeust irq for iommu.

The two panic added would only occurs before any VM starts running.

Tracked-On: #1855
Signed-off-by: Binbin Wu <binbin.wu@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
@binbinwu1
Copy link
Contributor Author

binbinwu1 commented Nov 20, 2018

[External_System_ID] ACRN-2453

sainath14 pushed a commit to sainath14/acrn-hypervisor that referenced this issue Dec 24, 2018
This patch does the following changes
According to VT-d spec Section 6.8 "Write Buffer Flushing" DRAM write buffers
are flushed implicitly upon Remapping Hardware Caches Invalidation even on
platforms that set RWBF to 1 in capability register. So removed write buffer
flushing as current ACRN issues cache invalidation commands in all cases.

Tracked-On: projectacrn#1855
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
sainath14 pushed a commit to sainath14/acrn-hypervisor that referenced this issue Dec 24, 2018
This patch does the following changes
According to VT-d spec Section 6.8 "Write Buffer Flushing" DRAM write buffers
are flushed implicitly upon Remapping Hardware Caches Invalidation even on
platforms that set RWBF to 1 in capability register. So removed write buffer
flushing as current ACRN issues cache invalidation commands in all cases.

Tracked-On: projectacrn#1855
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
sainath14 pushed a commit to sainath14/acrn-hypervisor that referenced this issue Dec 24, 2018
This patch does the following changes
According to VT-d spec Section 6.8 "Write Buffer Flushing" DRAM write buffers
are flushed implicitly upon Remapping Hardware Caches Invalidation even on
platforms that set RWBF to 1 in capability register. So removed write buffer
flushing as current ACRN issues cache invalidation commands in all cases.

Tracked-On: projectacrn#1855
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
wenlingz pushed a commit that referenced this issue Dec 24, 2018
This patch does the following changes
According to VT-d spec Section 6.8 "Write Buffer Flushing" DRAM write buffers
are flushed implicitly upon Remapping Hardware Caches Invalidation even on
platforms that set RWBF to 1 in capability register. So removed write buffer
flushing as current ACRN issues cache invalidation commands in all cases.

Tracked-On: #1855
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
@mwang106
Copy link
Contributor

No regression

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants