Sponsored Content
Full Discussion: Question about WCHAN values
Top Forums UNIX for Beginners Questions & Answers Question about WCHAN values Post 303044500 by bodisha on Monday 24th of February 2020 11:08:24 AM
Old 02-24-2020
Question about WCHAN values

I have a CentOS 8 (3.10) running on VirtualBox 6.0... And I have 2 questions about WCHAN

The 'ps' man page describes WCHAN as:

Quote:
nwchan WCHAN address of the kernel function where the process
is sleeping (use wchan if you want the kernel
function name). Running tasks will display a
dash ('-') in this column.

wchan WCHAN name of the kernel function in which the process
is sleeping, a "-" if the process is running, or
a "*" if the process is multi-threaded and ps is
not displaying threads.

I haven't see the "*" yet, but I'll see a "?" in the output of the "ps" command with regularity. Usually associated with the rcu_sched kernel process, but the "?" does appear for other processes. I haven't found a definition for the "?"... What does it mean?

My 2nd question is about a discrepancy I'm seeing between the output of the 'ps' command and the 'System Monitor' GUI utility. Under the 'ps' command, I'll see several processes in a run state and will have a "-" under WCHAN. Yet under the "System Monitor", those same processes will be in a run state with a WCHAN code of "poll_schedule_timeout". From what I've read this indicates a process is waiting for I/O... Shouldn't these processes be in a sleep state?

Image

Last edited by bodisha; 02-24-2020 at 01:45 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed question - replacing param values

Hello, Do you have any idea why the below sed command is also replacing the value of "PARAMETER2" instead of just "PARAMETER" in file1 ? % parameter=PARAMETER % new_value=2 % cat file1 PARAMETER=1 PARAMETER2=1 % cat file1 | sed s/*$/${new_value}/1 PARAMETER=2 PARAMETER2=2 Thanks. (3 Replies)
Discussion started by: majormark
3 Replies

2. Shell Programming and Scripting

How to pick values from column based on key values by usin AWK

Dear Guyz:) I have 2 different input files like this. I would like to pick the values or letters from the inputfile2 based on inputfile1 keys (A,F,N,X,Z). I have done similar task by using awk but in that case the inputfiles are similar like in inputfile2 (all keys in 1st column and values in... (16 Replies)
Discussion started by: repinementer
16 Replies

3. UNIX for Advanced & Expert Users

Capture child processes and change return values question

Thanks in advance. My environment is Ubuntu 9.04 desktop customized to be a high school classroom server for teaching code development. I have a unique "fake" jail called "lshell" which is very easy to setup and restricts users to commands that I dictate DISALLOWING ANYTHING ELSE. These... (6 Replies)
Discussion started by: tuxhats
6 Replies

4. UNIX for Dummies Questions & Answers

Process stopped: WCHAN pipe_w

Hi. Before throwing my question, thanks to everybody for paying attention. Sorry if my english isn't good enough, but it's not my mother tongue. That's my question: I have a java program that throws an external program with "Process p = Runtime.getRuntime.exec(***)". The communication between... (2 Replies)
Discussion started by: jlopezperez
2 Replies

5. Shell Programming and Scripting

Compare values in two files. For matching rows print corresponding values from File 1 in File2.

- I have two files (File 1 and File 2) and the contents of the files are mentioned below. - I am trying to compare the values of Column1 of File1 with Column1 of File2. If a match is found, print the corresponding value from Column2 of File1 in Column5 of File2. - I tried to modify and use... (10 Replies)
Discussion started by: Santoshbn
10 Replies

6. Shell Programming and Scripting

Converting odd values to even values(or vice-versa) located in a column

Hello All, I have a below data in a .csv file where all rows where col1 is A, col2 is odd numbers, similarly even numbers for all rows where col1 is B. Note that my data has some other columns(not shown here) too (around 100) after col2. Tool,Data A,1 A,3 A,5 .... so on B,2 B,4 .... ... (4 Replies)
Discussion started by: ks_reddy
4 Replies

7. Shell Programming and Scripting

Query the table and return values to shell script and search result values from another files.

Hi, I need a shell script, which would search the result values from another files. 1)execute " select column1 from table_name" query on the table. 2)Based on the result, need to be grep from .wft files. could please explain about this.Below is the way i am using. #!/bin/sh... (4 Replies)
Discussion started by: Rami Reddy
4 Replies

8. Shell Programming and Scripting

Read record from the text file contain multiple separated values & assign those values to variables

I have a file containing multiple values, some of them are pipe separated which are to be read as separate values and some of them are single value all are these need to store in variables. I need to read this file which is an input to my script Config.txt file name, first path, second... (7 Replies)
Discussion started by: ketanraut
7 Replies

9. Shell Programming and Scripting

awk file to read values from Db2 table replacing hard coded values

Hi, I want to replace a chain of if-else statement in an old AWK file with values from Db2 table or CSV file. The part of code is below... if (start_new_rec=="true"){ exclude_user="false"; user=toupper($6); match(user, "XXXXX."); if (RSTART ==2 ) { ... (9 Replies)
Discussion started by: asandy1234
9 Replies

10. UNIX for Dummies Questions & Answers

Default values for positional parameters - dummy question I think

Hi, Sorry for a dummy question I believe. I am just wanting to know how do I assign a default $1 argument if one is not provided. At the moment, I am doing something like below: arg1="${1:-foo}"And then I check $arg1 in case/esac. I am just wondering if there is a way for me to simply do... (3 Replies)
Discussion started by: newbie_01
3 Replies
ps(1)							      General Commands Manual							     ps(1)

Name
       ps - print process status statistics

Syntax
       ps [ options ] [ namelist ] [ corefile ]

Description
       The  command  displays  information about processes. Information on processes can change while is running, so the information it gives is a
       snapshot taken at a given time.

       If you omit the -a option, only your processes are candidates to be displayed by Specifying the -a option causes  information  about  other
       users' processes to be displayed; specifying the -x option includes information on processes without control terminals.

       You must use the -k option and specify both the namelist and corefile arguments when you look at a crash dump.  The namelist argument indi-
       cates that information is to be gathered using the specified system namelist file.  (The namelist file is a kernel  image  file).   If  you
       omit namelist, uses The core argument indicates that information is to be gathered using the specified core file.  If you omit core, uses

Options
       -#	 Represents any given process number and must be the last option given.  You cannot use this option with the -a and -tx options.

       -C	 Causes the %CPU field of the display to reflect the absolute percentage of cpu used by the process for scheduling during its res-
		 ident time .

       -S	 Causes the TIME field of the display to reflect the amount of user+system time spent by a process and its children.

       -a	 Displays information for processes executed from all users' terminals.  The default is to show processes executed from your  ter-
		 minal only.  You cannot use this option with the -# or -t option.

       -c	 Displays the command names as stored internally in the system for accounting purposes instead of the command arguments, which are
		 kept in the process address space.  This display is more reliable, if less informative, because a process is free to destroy  the
		 latter information.

       -e	 Displays the environment as well as the command arguments.

       -g	 Displays  all	processes within the process group.  Without this option, displays only ``interesting'' processes.  Processes that
		 are process group leaders are not considered interesting; therefore, top-level command interpreters  and  processes  waiting  for
		 users to log in are normally not shown.

       -k	 Uses the file specified in the core argument in place of and If you specify the -k option but no core argument, uses

       -l	 Displays  information	in long format, showing the fields PPID, CP, PRI, NI, ADDR, SIZE, RSS, and WCHAN as described under Output
		 Fields.

       -s	 Adds the size SSIZ of the kernel stack of each process to the basic output format for use by system administrators.

       -tx	 Displays information for only the specified terminal.	This option restricts output to processes whose controlling terminal is x.
		 Specify  x  in  the same format as displays terminal names. For example, displays for tty3, for console, for ttyd0, for processes
		 with no terminal, and for processes at the current terminal.  This option must be the last one given.	You cannot use this option
		 with the -# or -a options.

       -u	 Displays  user-oriented  output, which includes fields USER, %CPU, and %MEM. This option also displays SZ and RSS, which are com-
		 puted differently than they are for the -l and -v options.  The SZ field is computed as SIZE + TSIZ (virtual size  plus  size	of
		 text).  The RRS field is computed as RSS + (TRS/xccount) where xccount is the number of processes currently sharing the text.

       -v	 Displays  process  system  time and user time in addition to cumulative time.	This display includes fields RE, SL, PAGEIN, SIZE,
		 RSS, LIM, TSIZ, TRS, %CPU, and %MEM, described under Output Fields.

       -w	 Produces 132-column rather than 80 column output.  If repeated, as -ww, produces arbitrarily wide output.  This option allows	to
		 display more of wide displays.

       -x	 Displays information for all processes, including those not executed from terminals.

Output Fields
       The command displays the following fields in all output formats:

       PID	 The process identification (PID) number

       TT	 The control terminal of the process

       TIME	 The time, including both user and system time

       STAT	 The state of the process given by a sequence of five letters, such as RWNAV.

		 The first letter indicates the run status of the process:

		 R    The process is running.

		 T    The process is stopped.

		 P    The process is in page wait.

		 D    The process is in disk (or other short-term) wait.

		 S    The process is sleeping for less than about 20 seconds.

		 I    The process is idle (sleeping longer than about 20 seconds).

		 The second letter indicates whether a process is swapped out:

		 W	The process is swapped out.

		 Z	The process is killed, but not yet removed.

		 (blank)
			The process is in core.

		 >	The  process  has  a specified soft limit on memory requirements and is exceeding that limit.  This type of process is not
			swapped.

		 The third letter indicates whether a process is running with an altered CPU scheduling priority, using

		 N    The process priority is reduced.

		 <    The process priority has been artificially raised.

		 (blank)
		      The process is running without special treatment.

		 The fourth letter indicates any special treatment of the process for virtual memory:

		 A    Represents VA_ANOM.  This status typically represents a process using a disk more efficiently by	removing  gaps	caused	by
		      deletes and then collecting the remaining data.

		 S    Represents VA_SEQL.  This status is typical of large image processing programs that are using virtual memory to sequentially
		      address voluminous data.

		 (blank)
		      Represents VA_NORM.

		 The fifth letter indicates whether the process is a vector process:

		 V	Indicates that the process is using vector hardware. Only processes running on a VAX processor that contains vector  hard-
			ware can have this status.

		 (blank)
			Indicates the process is not using vector hardware.

       The following fields are not displayed in all output formats:

       USER	 Names the owner of the process.

       %CPU	 Describes  the  use  of  the  CPU by the process.  This percentage is a decaying average over a minute or less of previous (real)
		 time.	The time base over which this percentage is computed varies because processes may be new.  The sum of all %CPU fields  can
		 therefore exceed 200%.

       NICE (or NI)
		 Indicates the process scheduling increment.  For further information, see

       SIZE (or SZ)
		 Shows the virtual size of the process in 1024-byte units.

       RSS	 Shows the real memory (resident set) size of the process in 1024-byte units.

       LIM	 Indicates the soft limit on memory used, which is specified by a call to If no limit has been specified, this limit is shown as

       TSIZ	 Shows the size of the text (shared program) image.

       TRS	 Shows the size of resident (real memory) set of text.

       %MEM	 Gives the percentage of real memory used by this process.

       RE	 Indicates the residency time of the process (seconds in core).

       SL	 Indicates the sleep time of the process (seconds blocked).

       PAGEIN	 Shows the number of disk input and output operations resulting from references by the process to pages not loaded in core.

       UID	 Shows the numerical user identification number of the process owner.

       PPID	 Shows the numerical identification number of the parent of process.

       CP	 Displays the short-term CPU use factor used in scheduling.

       PRI	 Displays process priority. (This value is nonpositive when the process is in a wait state that cannot be interrupted.)

       ADDR	 Displays the swap address of the process or page frame of the beginning of the user page table entries.

       WCHAN	 Indicates  the event for which the process is waiting (an address in the system), with the initial part of the address truncated.
		 For example, the address 80004000 displays as 4000.

       F	 Displays flags associated with the process as in

       SLOAD	  00000001    Process is resident in memory.
       SSYS	  00000002    System process:  swapper, pager,
			      idle (RISC only), trusted path daemon.
       SLOCK	  00000004    Process is being swapped out.
       SSWAP	  00000008    Process requested to swap out for page table
			      growth.
       STRC	  00000010    Traced.
       SWTED	  00000020    Used in tracing.
       SULOCK	  00000040    Locked in by plock(2).
       SPAGE	  00000080    Process is waiting for page-in to complete.
       SKEEP	  00000100    Process is protected from swapout while transferring.
			      resources to another process.
       SOMASK	  00000200    Used by sigpause(2).
       SWEXIT	  00000400    Process is exiting.
       SPHYSIO	  00000800    Process is protected from swapout while doing physical
			      input or output.
       SVFORK	  00001000    Process resulted from a vfork(2) that is not
			      yet complete.
       SVFDONE	  00002000    Parent has received resources returned by
			      vfork(2) child.
       SNOVM	  00004000    Process has no virtual memory, as it is a
			      parent in the context of vfork(2).
       SPAGI	  00008000    Process is demand-paging data pages from its
			      text gnode.
       SSEQL	  00010000    Process has advised of sequential memory access.
       SUANOM	  00020000    Process has advised of random memory access.
       SXCTDAT	  00080000    Process has indicated intent to execute data
			      or stack (RISC only).
       SNOCLDSTP  00100000    POSIX environment: no SIGCLD generated when
			      children stop (formerly named SOUSIG).
       SOWEUPC	  00200000    Process is owed a profiling tick.
       SSEL	  00400000    Used by select(2).
       SLOGIN	  00800000    Process is a login process.
       SPTECHG	  01000000    The page table entries for the process have changed.
       SLKDONE	  04000000    System V file lock has been applied.
       SFIXADE	  08000000    Fix of unaligned accesses is being attempted
			      (RISC only).
       SEXECDN	  10000000    Process has done an execve(2).
       SIDLEP	  20000000    The idle process (RISC only).

       A process that has a parent and has exited, but for which the parent has not yet waited, is marked <defunct>.  A process  that  is  blocked
       trying  to exit is marked <exiting>. The command determines the filename and arguments given when the process was created by examining mem-
       ory or the swap area.  The method is unreliable because, for example,  a process can destroy this information. The filename  and  arguments
       displays might be incorrect.

Files
       Searched to find swap device and terminal names

       Swap device

       Kernel memory

       User process information

       Core file

       System namelist

See Also
       kill(1), w(1), getpriority (2), getrlimit(2), dump(5)

																	     ps(1)
All times are GMT -4. The time now is 05:10 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy