sched: finish preparing scheduler for rewrite

This commit is contained in:
Matheus
2024-09-21 23:06:37 -03:00
parent cc6477d46d
commit 0bff52b41e
19 changed files with 332 additions and 330 deletions
+3 -3
View File
@@ -270,7 +270,7 @@ void uacpi_kernel_stall(uacpi_u8 usec) {
}
void uacpi_kernel_sleep(uacpi_u64 msec) {
sched_sleepus(msec * 1000);
sched_sleep_us(msec * 1000);
}
struct acpi_irqctx {
@@ -355,7 +355,7 @@ static void acpi_dowork(struct acpi_workctx *ctx) {
}
static void acpi_dogpework() {
sched_targetcpu(get_bsp());
sched_target_cpu(get_bsp());
sched_yield();
acpi_dowork(&gpework);
@@ -418,7 +418,7 @@ static void work_await(struct acpi_workctx *ctx) {
if (empty)
return;
sched_sleepus(100 * 1000);
sched_sleep_us(100 * 1000);
}
}
+1 -1
View File
@@ -323,7 +323,7 @@ static void enqueueandwait(queuepair_t *queuepair, entrypair_t *entries) {
queuepair->submission.index %= queuepair->submission.entrycount;
*queuepair->submission.doorbell = queuepair->submission.index;
sched_preparesleep(false);
sched_prepare_sleep(false);
entries->thread = current_thread();
spinlock_release(&queuepair->lock);
sched_yield();
+1 -1
View File
@@ -87,7 +87,7 @@ static void vioblk_enqueue(vioblkdev_t *blkdev, requestheader_t *headerphys, voi
size_t driveridx = VIO_QUEUE_DRV_IDX(&blkdev->queue);
VIO_QUEUE_DRV_RING(&blkdev->queue)[driveridx % blkdev->queue.size] = idx;
sched_preparesleep(false);
sched_prepare_sleep(false);
blkdev->queuewaiting[idx / 3] = current_thread();
++VIO_QUEUE_DRV_IDX(&blkdev->queue);
+1 -1
View File
@@ -77,7 +77,7 @@ static void set(netdev_t *netdev, uint32_t ip, mac_t mac, timespec_t time) {
static void cleanupthreadfn() {
for (;;) {
sched_sleepus(1000000); // 1 second
sched_sleep_us(1000000); // 1 second
MUTEX_ACQUIRE(&cachelock, false);
timespec_t currtime = timekeeper_time();
hashentry_t entrybuffer;
+1 -1
View File
@@ -138,7 +138,7 @@ static int vionet_sendpacket(netdev_t *internal, netdesc_t desc, mac_t targetmac
size_t driveridx = VIO_QUEUE_DRV_IDX(&netdev->txqueue)++;
VIO_QUEUE_DRV_RING(&netdev->txqueue)[driveridx % netdev->txqueue.size] = idx;
sched_preparesleep(false);
sched_prepare_sleep(false);
netdev->txwait[idx] = current_thread();
*netdev->txqueue.notify = 0;
+3 -3
View File
@@ -96,10 +96,10 @@ int poll_dowait(polldesc_t *desc, size_t ustimeout) {
return 0;
}
sched_preparesleep(true);
sched_prepare_sleep(true);
if (ustimeout != 0) {
sched_targetcpu(current_cpu());
sched_target_cpu(current_cpu());
timer_insert(current_cpu()->timer, &sleepentry, timeout, desc, ustimeout, false);
}
@@ -117,7 +117,7 @@ int poll_dowait(polldesc_t *desc, size_t ustimeout) {
if (ustimeout != 0 && ret != 1) {
timer_remove(current_cpu()->timer, &sleepentry);
sched_targetcpu(NULL);
sched_target_cpu(NULL);
}
interrupt_set(intstate);