Kernel: το kill δεν πιάνει αυτο

P. Christeas p_christ at hol.gr
Sat Nov 30 16:25:02 EET 2002


Στις Σαβ 30 Νοε 2002 2:45 πμ, ο/η Giorgos Keramidas έγραψε:
> On 2002-11-30 02:20, "P. Christeas" <p_christ at hol.gr> wrote:
> > Στις Σαβ 30 Νοε 2002 1:45 πμ, ο/η Giorgos Keramidas έγραψε:
> > > charon at labs[01:43]/users/charon$ ps -l
> > >   F S   UID   PID  PPID  C PRI  NI ADDR    SZ WCHAN  TTY          TIME
> > > CMD 100 S   105 22456 22408  0  75   0    -   605 wait4  pts/0   
> > > 00:00:00 bash 000 R   105 22493 22456  0  79   0    -   794 -     
> > > pts/0    00:00:00 ps
> > >
> > > Πες μας τι βλέπεις στη στήλη WCHAN για τα κολλημένα processes.
> >
> > Θα το δώ (όταν ξανακολλήσει το πρόγραμμα).
> > Πάντως είναι ανώμαλο να μην δέχεται κάποιο process (και μάλιστα σε
> > userland) το SIGQUIT για πάνω από 1 λεπτό..
>
> Καθόλου.  Όταν ένα process είναι στη μέση κάποιου system call και
> περιμένει για I/O μερικές φορές έχει απενεργοποιημένα τα signals.

Δυσκολεύομαι να το δεχτώ αυτό. Η εφαρμογή μου είναι σίγουρα προβληματική (με 
τον τρόπο που περιμένει για I/O). Όμως πρέπει να υπάρχει πάντα ένας τρόπος να 
σταματήσει ο kernel την εφαρμογή αυτή.
Το γεγονός οτι βλέπω system load και όχι user load, σημαίνει οτι το system 
call βρίσκεται σε race.

Για τον Άγγελο Οικονομόπουλο: αν θυμάμαι καλά, το πρόβλημα αυτό υπήρχε και σε 
κάποιον 2.4 (μάλλον 2.4.18). Και με τους 2.5.(<47)..
 
Μου είναι κάπως δύσκολο να πετύχω το race την ώρα που το θέλω. Η εφαρμογή 
είναι single-process, κατάσταση R(un) ενώ έχει ήδη σταματήσει και την έχω 
'ξυπνήσει' με SIGCONT. 
Ή, για να το θέσω αλλιώς: πόση ώρα μπορεί να μείνει μια process (ή system 
call) σε uninterruptible mode χωρίς να μπορεί ο πυρήνας (με χειρισμούς του 
root) να την σκοτώσει;




More information about the Linux-greek-users mailing list