"Ночные" сборки KolibriOS

Share your distros and discuss others'
  • Возможности прикольные. Как насчет поддержки HEX цветов? Я бы тогда поэкспериментировал.
    Ты старался, извини, но последняя буэ))))
    Ну ладно, откатить обоину на предыдущую через palitra?)
    Из хаоса в космос
  • Leency wrote:Ты старался, извини, но последняя буэ))))
    Ну цвета можно же любые подобрать.
    Как насчет поддержки HEX цветов?
    Разве это принципиально?
    Сейчас просто пишешь "R,G,B, R,G,B, R,G,B, ..." и всё!
  • ещё вариант(0,80,184,0,88,190,0,82,184,0,70,172,42,168,250,46,172,252,42,166,248,30,154,240,184,228,252,212,244,254,204,238,254,164,216,248,72,78,94,174,46,26,174,46,26,134,38,128
    )
    DEINK3.PNG
    DEINK3.PNG (159.93 KiB)
    Viewed 7676 times
    Leency wrote:Ну ладно, откатить обоину на предыдущую через palitra?)
    Давай я залью fillscr и выберем цвета.
  • В свежей сборке svn7140, перестали работать программы, которые ещё недавно работали. Тестировал на реальном железе.

    aclock
    3dwav
    gears
    ray
    view3ds
    checkers
    rforces
    app_plus
    game_center
    syspanel
    table
    txtread
    The Glass is Always Half Full! :mrgreen:
  • В общем, проверил старые сборки и выяснил, что в сборке svn7122 эти программы работают, а в сборке svn7124 не работают. Судя по логам svn, программы перестали работать после правок в ядре, которые сделал dunkaist. :(
    The Glass is Always Half Full! :mrgreen:
  • Спасибо за репорт, я посмотрю, в чём там дело.
    Покажи вывод grep -m1 ^flags /proc/cpuinfo
  • dunkaist wrote:Спасибо за репорт, я посмотрю, в чём там дело.
    Покажи вывод grep -m1 ^flags /proc/cpuinfo
    Нет проблем. :D

    Вот вывод:
    flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 popcnt aes xsave avx f16c lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 tce nodeid_msr tbm topoext perfctr_core perfctr_nb cpb hw_pstate vmmcall bmi1 arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
    The Glass is Always Half Full! :mrgreen:
  • Воспроизвёл баг в bochs. Пока вижу, что прилетает x87 Floating-Point Exception (0x10) на инструкции fstp. Причём, она не первая из fpu, а третья. Сегодня ушёл спать, на днях продолжу.
  • Помимо прочих косяков, #NM не триггерится AVX инструкциями, только FPU--SSE. Похоже, буду при наличии avx (или даже просто xsave) сохранять все регистры при каждом переключении, а без него по старому. Пока сделал, чтобы TS в do_change_task не устанавливался -- падения пропали. Планирую добавить туда же xsave/xrstor для случая avx, и должно быть счастье.
  • dunkaist wrote:. Пока сделал, чтобы TS в do_change_task не устанавливался -- падения пропали.
    Тогда контекст fpu/sse переключаться не будет. Все будут с одним работать.
  • Serge wrote:
    dunkaist wrote:. Пока сделал, чтобы TS в do_change_task не устанавливался -- падения пропали.
    Тогда контекст fpu/sse переключаться не будет. Все будут с одним работать.
    Да, я поэтому не заливал. На выходных уезжаю, в начале недели только смогу пофиксить.
    Откатить при необходимости проще всего в начале fpu.inc, сделав jmp .no_xsave вместо jnc.
  • dunkaist
    Посмотри пожалуйста ASAP, т.к. многие важные приложения не работают.
    Из хаоса в космос
  • Возился с таймером HPET и заодно измерил латентность обработчика прерываний. Обнаружилась интересная вещь. В обычном состоянии при низкой нагрузке на цпу латентность 52-53 микросекунды. При 100% 2, иногда 3 микросекунды. Причина в использовании mwait в idle_thread. Если требуется низкая латентность обработчика, надо в kernel.asm поставить

    Code: Select all

            jmp     .no_wake_cpus
    перед

    Code: Select all

    ; Move other CPUs to deep sleep, if it is useful
    uglobal
    use_mwait_for_idle db 0
    endg
    P.S. Проблеме подвержены только цпу от Интел.
  • Serge wrote:Возился с таймером HPET и заодно измерил латентность обработчика прерываний. Обнаружилась интересная вещь. В обычном состоянии при низкой нагрузке на цпу латентность 52-53 микросекунды. При 100% 2, иногда 3 микросекунды. Причина в использовании mwait в idle_thread.
    Это фича. idle_loop_mwait специально уводит процессор в глубокий сон C3, чтобы меньше грелся, но естественно, вывод из глубокого сна требует больше времени. Если в

    Code: Select all

            mov     eax, 20h        ; or 10h
            mwait
    заменить 20h на 10h, будет сон C2. Если на 0, будет обычный C1, так же, как и в hlt. В принципе, можно хоть динамически это значение вычислять в зависимости от того, хочет ли система в данный конкретный момент меньше греться или быстрее обрабатывать прерывания. Бонусные баллы за разделение цикла idle для главного процессора и остальных, неработающих процессоров, с разными значениями глубины сна.
    Сделаем мир лучше!
  • Who is online

    Users browsing this forum: Google [Bot] and 1 guest