Lưu ý
Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.
- Bản gốc:
- Người dịch:
Google Translate (machine translation)
- Phiên bản gốc:
8541d8f725c6
Cảnh báo
Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.
Công cụ ảo hóa ngắt eXternal POWER9 (XIVE Gen1)¶
- Các loại thiết bị được hỗ trợ:
Bộ điều khiển ngắt KVM_DEV_TYPE_XIVE POWER9 XIVE thế hệ 1
Thiết bị này hoạt động như một bộ điều khiển ngắt VM. Nó cung cấp KVM giao diện để cấu hình các nguồn ngắt của máy ảo trong phần cơ bản Bộ điều khiển ngắt POWER9 XIVE.
Chỉ có một phiên bản XIVE có thể được khởi tạo. Một thiết bị XIVE khách yêu cầu máy chủ POWER9 và hệ điều hành khách phải hỗ trợ Chế độ ngắt khai thác gốc XIVE. Nếu không, nó sẽ chạy bằng cách sử dụng chế độ ngắt kế thừa, được gọi là XICS (POWER7/8).
Bản đồ thiết bị
- Thiết bị KVM hiển thị các phạm vi MMIO khác nhau của XIVE HW
cần thiết cho việc quản lý ngắt. Những thứ này được tiếp xúc với khách trong VMAs được trang bị trình xử lý lỗi VM tùy chỉnh.
Khu vực quản lý ngắt luồng (TIMA)
- Mỗi luồng có bối cảnh Quản lý ngắt luồng được liên kết
bao gồm một tập hợp các thanh ghi. Những thanh ghi này cho phép luồng xử lý việc quản lý mức độ ưu tiên và xác nhận ngắt. nhất quan trọng là:
- Bộ đệm chờ ngắt (IPB)
Ưu tiên bộ xử lý hiện tại (CPPR)
Đăng ký nguồn thông báo (NSR)
- Họ được tiếp xúc với phần mềm ở bốn trang khác nhau, mỗi trang đề xuất
một chế độ xem với một đặc quyền khác. Trang đầu tiên dành cho bối cảnh luồng vật lý và bối cảnh thứ hai cho trình ảo hóa. Chỉ có thứ ba (hệ điều hành) và thứ tư (cấp độ người dùng) được tiếp xúc với khách.
Bộ đệm trạng thái sự kiện (ESB)
- Mỗi nguồn được liên kết với Bộ đệm trạng thái sự kiện (ESB) với
hoặc một cặp trang chẵn/lẻ cung cấp các lệnh để quản lý nguồn: kích hoạt, tới EOI, tắt nguồn cho ví dụ.
Truyền qua thiết bị
- Khi một thiết bị được truyền qua máy khách, nguồn
các ngắt đến từ bộ điều khiển CTNH khác (PHB4) và ESB các trang được hiển thị cho khách sẽ thích ứng với sự thay đổi này.
- Những người trợ giúp passthru_irq, kvmppc_xive_set_mapped() và
kvmppc_xive_clr_mapped()được gọi khi có irq CTNH của thiết bị được ánh xạ vào hoặc không được ánh xạ từ không gian số IRQ của khách. KVM thiết bị mở rộng những trợ giúp này để xóa các trang ESB của khách IRQ số được ánh xạ và sau đó cho phép trình xử lý lỗi VM phục hồi lại. Trình xử lý sẽ chèn trang ESB tương ứng với HW ngắt của thiết bị đang được truyền qua hoặc IPI ESB ban đầu trang nếu thiết bị đã được gỡ bỏ.- Ánh xạ lại ESB hoàn toàn minh bạch đối với khách và hệ điều hành
trình điều khiển thiết bị. Tất cả việc xử lý được thực hiện trong VFIO trở lên người trợ giúp trong KVM-PPC.
Nhóm:
- KVM_DEV_XIVE_GRP_CTRL
Cung cấp các điều khiển toàn cầu trên thiết bị
- Thuộc tính:
1.1 KVM_DEV_XIVE_RESET (chỉ ghi) Đặt lại cấu hình bộ điều khiển ngắt cho nguồn và sự kiện hàng đợi. Được sử dụng bởi kexec và kdump.
Lỗi: không có
- 1.2 KVM_DEV_XIVE_EQ_SYNC (chỉ ghi)
Đồng bộ hóa tất cả các nguồn và hàng đợi và đánh dấu các trang EQ bị bẩn. Cái này để đảm bảo rằng trạng thái bộ nhớ nhất quán được ghi lại khi di chuyển VM.
Lỗi: không có
- 1.3 KVM_DEV_XIVE_NR_SERVERS (chỉ ghi)
Kvm_device_attr.addr trỏ đến giá trị __u32 là số lượng số máy chủ bị gián đoạn (tức là id vcpu cao nhất có thể cộng với một).
Lỗi:
-ENOENT Số nguồn không xác định -EINVAL Số nguồn không được khởi tạo -EINVAL Ưu tiên không hợp lệ -EINVAL Số CPU không hợp lệ. -EFAULT Con trỏ người dùng không hợp lệ cho attr->addr. -ENXIO Hàng đợi sự kiện CPU không được định cấu hình hoặc cấu hình của
ngắt CTNH cơ bản không thành công
-EBUSY Không có CPU để phục vụ ngắt ======= =============================================================
- KVM_DEV_XIVE_GRP_EQ_CONFIG (đọc-ghi)
Định cấu hình hàng đợi sự kiện của CPU
- Thuộc tính:
Mã định danh mô tả EQ (64-bit)
Mã định danh mô tả EQ là một bộ (máy chủ, mức độ ưu tiên):
- bit: ZZ0000ZZ 31 .. 3 | 2 .. 0
giá trị: máy chủ ZZ0001ZZ | sự ưu tiên
Kvm_device_attr.addr trỏ tới:
- cấu trúc kvm_ppc_xive_eq {
__u32 cờ; __u32 qshift; __u64 qaddr; __u32 qtoggle; __u32 qindex; __u8 pad[40];
};
- flags: cờ xếp hàng
- KVM_XIVE_EQ_ALWAYS_NOTIFY (bắt buộc)
buộc thông báo mà không sử dụng cơ chế hợp nhất được cung cấp bởi ESB XIVE END.
qshift: kích thước hàng đợi (lũy thừa 2)
qaddr: địa chỉ thực của hàng đợi
qtoggle: bit chuyển đổi hàng đợi hiện tại
qindex: chỉ mục hàng đợi hiện tại
pad: dành riêng cho việc sử dụng sau này
Lỗi:
-ENOENT Số nguồn không xác định -EINVAL Số nguồn không được khởi tạo ======= ================================
Trạng thái VCPU
- IC XIVE duy trì trạng thái ngắt VP trong cấu trúc bên trong
được gọi là NVT. Khi VP không được gửi đi trên bộ xử lý CTNH luồng, cấu trúc này có thể được HW cập nhật nếu VP là mục tiêu của một thông báo sự kiện.
- Điều quan trọng đối với việc di chuyển là lấy IPB được lưu trong bộ nhớ đệm từ NVT
vì nó tổng hợp mức độ ưu tiên của các ngắt đang chờ xử lý. Chúng tôi nắm bắt thêm một chút để báo cáo thông tin gỡ lỗi.
KVM_REG_PPC_VP_STATE (2 * 64bit):
- bit: ZZ0000ZZ 31 .... 0 |
giá trị: ZZ0001ZZ TIMA word1 | bit: ZZ0002ZZ giá trị: ZZ0003ZZ
Di cư:
- Lưu trạng thái của máy ảo bằng chế độ khai thác gốc XIVE
phải tuân theo một trình tự cụ thể. Khi VM bị dừng:
Che giấu tất cả các nguồn (PQ=01) để ngăn chặn dòng sự kiện.
Đồng bộ hóa thiết bị XIVE với bộ điều khiển KVM KVM_DEV_XIVE_EQ_SYNC để
xóa mọi thông báo sự kiện trên chuyến bay và ổn định EQ. Tại giai đoạn này, các trang EQ được đánh dấu bẩn để đảm bảo chúng được chuyển theo trình tự di chuyển.
Nắm bắt trạng thái nhắm mục tiêu nguồn, cấu hình EQ
và trạng thái của các thanh ghi bối cảnh ngắt luồng.
Khôi phục cũng tương tự:
Khôi phục cấu hình EQ. Vì việc nhắm mục tiêu phụ thuộc vào nó.
Khôi phục nhắm mục tiêu
Khôi phục bối cảnh ngắt luồng
Khôi phục trạng thái nguồn
Để vCPU chạy