Przeglądaj źródła

删了几处无用信息

fslongjin 2 lat temu
rodzic
commit
9ce123418f

+ 4 - 7
kernel/driver/timers/HPET/HPET.c

@@ -70,15 +70,12 @@ void HPET_handler(uint64_t number, uint64_t param, struct pt_regs *regs)
 
         // if (current_pcb->pid == 2)
         //     kwarn("timer_jiffies = %ld video_refresh_expire_jiffies=%ld", timer_jiffies, video_refresh_expire_jiffies);
-        if (timer_jiffies >= video_refresh_expire_jiffies)
+        // 当时间到了,或进程发生切换时,刷新帧缓冲区
+        if (timer_jiffies >= video_refresh_expire_jiffies || (video_last_refresh_pid != current_pcb->pid))
         {
             raise_softirq(VIDEO_REFRESH_SIRQ);
         }
-        else
-        {
-            if (video_last_refresh_pid != current_pcb->pid)
-                raise_softirq(VIDEO_REFRESH_SIRQ);
-        }
+        
 
         sched_update_jiffies();
 
@@ -154,7 +151,7 @@ int HPET_init()
     HPET_NUM_TIM_CAP = (tmp >> 8) & 0x1f; // 读取计时器数量
 
     // kinfo("HPET CLK_PERIOD=%#03lx Frequency=%f", HPET_COUNTER_CLK_PERIOD, (double)HPET_freq);
-    kdebug("HPET_freq=%ld", (long)HPET_freq);
+    // kdebug("HPET_freq=%ld", (long)HPET_freq);
     // kdebug("HPET_freq=%lf", HPET_freq);
 
     struct apic_IO_APIC_RTE_entry entry;

+ 2 - 4
kernel/driver/video/video.c

@@ -104,11 +104,9 @@ int video_init(bool level)
         // timer_func_init(tmp, &video_refresh_framebuffer, NULL, 10*REFRESH_INTERVAL);
         // timer_func_add(tmp);
         register_softirq(VIDEO_REFRESH_SIRQ, &video_refresh_framebuffer, NULL);
-        kdebug("15/5=%#ld", 15 / 5);
-        kdebug("1212121=%#ld", REFRESH_INTERVAL / 5);
-        kdebug("sdds21=%#ld", REFRESH_INTERVAL / 5 + (REFRESH_INTERVAL % HPET0_INTERVAL ? 1 : 0));
+        
         video_refresh_expire_jiffies = cal_next_n_ms_jiffies(10 * REFRESH_INTERVAL);
-        kdebug("video_refresh_expire_jiffies=%ld", video_refresh_expire_jiffies);
+
         raise_softirq(VIDEO_REFRESH_SIRQ);
     }
 }

+ 1 - 1
kernel/process/process.c

@@ -622,7 +622,7 @@ unsigned long do_fork(struct pt_regs *regs, unsigned long clone_flags, unsigned
     spin_unlock(&process_global_pid_write_lock);
 
     tsk->cpu_id = proc_current_cpu_id;
-    tsk->state = PROC_RUNNING;
+    tsk->state = PROC_UNINTERRUPTIBLE;
 
     tsk->parent_pcb = current_pcb;
     wait_queue_init(&tsk->wait_child_proc_exit, NULL);