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