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

kepler: Interrupt object should be capable of receiving ints from the other core #52

Open
notYuriy opened this issue May 14, 2021 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@notYuriy
Copy link
Contributor

Ideally, when handling interrupts from IOAPIC, we should set logical destination id to all 1s (so that any core can recieve the interrupt) and enable least busy mode. This would mean that any core can recieve the interrupt.

In this case, InterruptObject should support calling raise() on cores other than core owning thread was allocated to. For now its not the case.

/// NOTE: InterruptObject is strictly thread local
/// and assumes that raise() is called from the
/// thread owning queue.
/// NOTE: After unlink() was called, raise()
/// can no longer be called
pub const InterruptObject = struct {

The issue is in shutdown method that demands that interrupt won't arrive. This shouldn't be hard to fix with spinlock that will be locked both inside raise() and shutdown() methods

@notYuriy notYuriy self-assigned this May 14, 2021
@notYuriy notYuriy added the enhancement New feature or request label May 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant