8000 ioapic: set IOAPIC_IRQ_LINES to max allowed by lsf37 · Pull Request #1263 · seL4/seL4 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ioapic: set IOAPIC_IRQ_LINES to max allowed #1263

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

Merged
merged 2 commits into from
Jun 14, 2024
Merged

Conversation

lsf37
Copy link
Member
@lsf37 lsf37 commented Jun 13, 2024

Correctly mask the IOAPICVER register to the Maximum Redirection Entry field to potential avoid spurious higher bits on e.g. AMD processors.

Set IOAPIC_IRQ_LINES to the maximum value this field is allowed to return (239+1). While our haswell machines report 24 IRQ lines as expected, the skylake machines report 120.

The only impact should be the size of the ioredtbl_state array.

Sources: it was extremely hard to find actual docs for the IOAPIC. The Intel manual was not helpful. This ancient PDF had information on the register format, max value, and masking requirements, which I followed here. This seems to be consistent with what FreeBSD does in e.g. apicreg.h.

@lsf37 lsf37 requested review from wom-bat and Ivan-Velickovic June 13, 2024 05:31
@lsf37 lsf37 added the hw-test sel4test hardware builds + runs for this PR label Jun 13, 2024
Correctly mask the IOAPICVER register to the Maximum Redirection Entry
field to potential avoid spurious higher bits on e.g. AMD processors.

Set IOAPIC_IRQ_LINES to the maximum value this field is allowed to
return (239+1). While our haswell machines report 24 IRQ lines as
expected, the skylake machines report 120.

The only impact should be the size of the ioredtbl_state array.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
@lsf37 lsf37 force-pushed the lsf37/ioapic_max_irq_lines branch from d68a5ce to 6d97856 Compare June 13, 2024 05:35
Copy link
Member
@wom-bat wom-bat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks OK to me.

@lsf37 lsf37 added the proof-test run C proofs on PR (use when preprocess test failed) label Jun 13, 2024
@lsf37 lsf37 self-assigned this Jun 13, 2024
@lsf37
Copy link
Member 8000 Author
lsf37 commented Jun 13, 2024

The proofs are failing because this repo still points to Isabelle2023 and l4v has moved to Isabelle2024 already. Added #1264 to get automatic updates in the future.

@lsf37 lsf37 removed the proof-test run C proofs on PR (use when preprocess test failed) label Jun 13, 2024
@lsf37
Copy link
Member Author
lsf37 commented Jun 13, 2024

Have checked the proofs separately, and they pass.

@lsf37 lsf37 merged commit 6e9370a into master Jun 14, 2024
81 of 83 checks passed
@lsf37 lsf37 deleted the lsf37/ioapic_max_irq_lines branch June 14, 2024 04:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hw-test sel4test hardware builds + runs for this PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0