Wpis z mikrobloga

Miraski od #linux i może trochę #programowanie
Jaką wartość nice reprezentuje znak: "-" ?
Taki myk:

ps -e --format="pid cmd nice" |grep 496
496 [irq/29-mei_me] -

Z tego co wiem proces odpalony bez nice powinien mieć wartość 0. To 0 nie jest, bo inne procesy mają 0, ten ma kreskę.
  • 17
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wykopek_n: There are a total of 140 priorities and two distinct priority ranges implemented in Linux. The first one is a nice value (niceness) which ranges from -20 (highest priority value) to 19 (lowest priority value) and the default is 0, this is what we will uncover in this guide. The other is the real-time priority, which ranges from 1 to 99 by default, then 100 to 139 are meant
  • Odpowiedz
@secondreality: jest napisane o wartości dodatniej i ujemnej, gdzie wartością jest liczba całkowita z przedziału -20:19
Ale nie ma nic o samym minusie. I nie jest to -1 ani 0, bo te są widoczne jako -1 i 0.
  • Odpowiedz
@wykopek_n: Słabo szukam bo nie mogę znaleźć, ale wydaje mi się, że tak jest tylko dla procesów kernela, które służą za obsługę przerwań urządzenia. To nie tak, że dobrze to rozumiem więc mogę trochę pisać bzdury ale jak spojrzysz na procesy, to nice ustawiony na - dotyczy stricte urządzeń fizycznych.

Jesli chodzi o sprawy kernela to chyba najlepiej zawracać głowę @yuim: ( ͡° ͜ʖ ͡°
  • Odpowiedz
@Kryspin013: dziękuję za potwierdzenie moich przypuszczeń, ale to mi dalej nie rozwiązuje problemu :)
Muszę zrobić statystyki procesów z nice<0 i gdy awkiem sortuję <0 to mam matcha też na proesy z nice ustawionym na kreskę. I wg mnie to jest źle.
A w guglu jakbym nie pytał to tej kreski nikt nigdzie nie opisał.
  • Odpowiedz
Muszę zrobić statystyki procesów z nice<0 i gdy awkiem sortuję <0 to mam matcha też na proesy z nice ustawionym na kreskę. I wg mnie to jest źle.


@wykopek_n: dodaj sobie w pipe np grep -v "\-$" albo dopisz w awk, żeby wypisywał tylko linię jeśli nie kończy się na -. Sprawdzanie - na końcu linii ci zawsze zadziała bo brak wartości liczbowej to jedyny przypadek kiedy - jest na
  • Odpowiedz
@Kryspin013: @wykopek_n: dobrze to wykminiliscie ten proces jest związany z przerwaniami. Niektóre przerwania mogą mieć życzenie żeby działać jako wątki jadra, można to zrobić przy pomocy request_threaded_irq(). Śledząc co się dzieje w tej funkcji dochodzimy do funkcji setup_irq_thread() która ustawia priorytet RT dla takiego wątku j---a:

https://elixir.bootlin.com/linux/latest/source/kernel/irq/manage.c#L1236

Ten moduł zarejestrował
  • Odpowiedz
@yuim: Jeśli się nie jebnąłem to SCHEDRR I SCHEDFIFO mogą mieć ten sam priorytet. FIFO się wykonuje do końca chyba, że jest coś o wyższym priorytecie a RR ma określony czas na wykonanie zadania, po którym dzieli zasoby (chyba że wyższy priorytet).

Logika każe mi zakładać, że SCHED_FIFO o priorytecie 99 ale pewnie to nie takie proste pytanie. Nie mam teraz tyle czasu by grzebać w kodzie xd
  • Odpowiedz
@yuim: Prawdę mówiąc to nawet nie wiem gdzie szukać, przejrzałem na szybko jedynie sched.h i manual do scheda. Poszukam jak będę miał czas.

jako podpowiedź mogę dodać że na tych trzech wymienionych klasach świat się nie kończy


Domyślałem się. Widziałem jeszcze SCHED_DEADLINE ( ͡° ͜ʖ ͡°)
  • Odpowiedz