Closed paroque28 closed 2 years ago
My only concern is the naming of the resource:
If we look at the Device Manager Proposal form Kubernetes: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/resource-management/device-plugin.md
One can read that:
"When launching kubectl describe nodes, the devices appear in the node status as vendor-domain/vendor-device."
Here we are not following the naming convention and using resource names such as:
"xilinx.com/fpga-xilinx_aws-vu9p-f1_dynamic_5_0-43981"
Or in PCI something like:
"xilinx.com/fpga+ "-" + device.shellVer + "-" + device.timestamp
What I want to note here is that fixing devices to a specific DSA version and timestamp makes it very difficult to orchestrate workloads. Let's say we have 1000 nodes FPGA ready and 500 of them are busy, how would you orchestrate the workload to run on the best FPGA if the resource name is not general for every FPGA. Is there any particular reason why you are doing this?
We could set the Kubernetes yaml file to something like this if we really need to fix a shell /XRT version:
spec:
containers:
- name: demo-container-1
image: k8s.gcr.io/pause:2.0
resources:
limits:
xilinx.com/fpga-xilinx: 1
dsaversion: xilinx_aws-vu9p-f1_dynamic_5_0
dsatimestamp: 43981
Instead of:
spec:
containers:
- name: demo-container-1
image: k8s.gcr.io/pause:2.0
resources:
limits:
xilinx.com/fpga-nx_aws-vu9p-f1_dynamic_5_0-43981: 1
@luciferlee
The other thing I can look at is how to read the DTB without privileged
Hi paroque28, Thanks so much for your contribution, now I'm working on this function with your code as reference and will be glad to let you know when we make an update of it.
Thanks @yuzhang66 for the effort
Tested with: Xilinx ZynqMP ZCU102, XRT 2019.2.
Test:
This output proves the functioning of all the components.
Read all notes in the commit messages.
Build made with: https://github.com/Xilinx/FPGA_as_a_Service/pull/13