-
Notifications
You must be signed in to change notification settings - Fork 7.6k
modules: add and migrate to the Xen module #91643
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
base: main
Are you sure you want to change the base?
Conversation
The following west manifest projects have changed revision in this Pull Request:
⛔ DNM label due to: 1 added project Note: This message is automatically posted and updated by the Manifest GitHub Action. |
Hi @soburi I checked related issue #91644, commit messages, your Xen fork and code of this PR. First of all, Xen support in Zephyr consists of few scenarios/drivers, that may run on few platforms. It means that after migration to new approach with public headers, they should be re-tested before taking them to the main tree (it may not be fast). Two basic scenarios for Xen+Zephyr are running as Domain-0 and as Domain-U. It can be done on different platforms: Qemu, Renesas Gen3-Gen4, Raspberry PI5 etc. Second, I am not sure about the approach for public headers repo. I think creating a whole fork history of Xen hypervisor, manually removing everything except public headers, and patch them every time - is not the best approach, because it will require manual actions from me as maintainer for new Xen versions (the same as it is now). Unfortunately, I can not provide you with better idea now, but I had to mention this. I will try to find out a solution for this or at least I am open for discussion. Third, I know that this PR is some kind of draft or proposal, but in some parts I don't actually understand the approach. For example, you are removing Kconfig file from Once again, thank you for great effort and PoC, hope my comment will help us to start discussion and find best solution. BR. |
Add the Xen include files as a module. Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
Thank you for your review, and sorry for my late response.
I switched to a more conservative approach. I think this will make it somewhat easier to revalidate.
Merging is a very difficult issue. Leaving the One idea is to create a working branch where we just move the directory, and then merge from there.
Since Xen supports other architectures as well, I don't think Xen's Kconfig should be placed under
I believe there are still many issues that require your cooperation. |
Hi @soburi I spent some time thinking about the approach and ways to resolve issues, that are concerning to me. Then I checked @carlescufi comment about a TSC discussion in #91644, this increased my doubts about the way it is going to be implemented. Also, this comment made me curious about the actual need of moving it to a separate project/module from Zephyr. I'm not familiar with current Zephyr development trends, so I need someone to clarify if we actually need to remove MIT code/headers from Zephyr RTOS sources? Regarding previous comments:
Definitely, current implementation has issues with maintenance due to differences between Xen and Zephyr coding styles. Previously coding style and content was a major issue when I tried to submit it here, so I tried to remove everything that is not used and to fix coding style in headers, which were needed. If we will place them in separate module, I 100% agree that they should left as they are in Xen source tree.
I believe that it is OK to just take a
Currently Xen in Zephyr is supported only for Arm64, thus it was placed there. When someone will add support of some other arch, I believe it will be a right time to move it from there. I still think that it should not be placed in module, that should just contain Xen public header since CONFIG_XEN touches a lot of thing inside Zephyr RTOS now.
Thank you very much for your effort, I will still try to assist you as much as I can. Best regards, |
Currently, the MIT-licensed Xen public headers were incorporated under the `include/zephyr/xen/public`. However, the recent policy is to not include sources other than Apache-2 in the main tree, so we will externalize them. Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
|
Currently, the MIT-licensed Xen public headers were incorporated
under the
include/zephyr/xen/public
.However, the recent policy is to not include sources other than
Apache-2 in the main tree, so we will externalize them.
related: #91644
File differences:
The repository contains the
RELEASE-4.17.0
file,which is close to the version before the migration,
but there are some differences in
arch-arm.h
,due to the following two commits.
These are considered to need to be incorporated,
so they have been changed from the pre-migration version.
xen-project/xen@918b8842
xen-project/xen@0e03ff97
Also, in the pre-migration version,
was added.
But this can be handled by the line
So the differences related to this are not applied
and left the code from
RELEASE-4.17.0
.Also, visibility was controlled with
CONFIG_XEN_DOM0
,but this is not necessarily required, so it has been omitted.
Configuration behavior change:
The behavior of
CONFIG_XEN_INTERFACE_VERSION
has been changedso that if 0 is set,
the LATEST version defined in the header will be used.
The default value has also been changed to 0.
(In other words, if you do not specify it, it will follow the header version.)
Accordingly, we have updated the path and reviewed the location of
the config items.