OPTION_WAKEUP_SELECT_VIA_PIPE made permanent; build option removed.

This commit is contained in:
Fish (David B. Trout)
2013-05-31 10:56:59 -07:00
parent 81c7a8e29b
commit c92c385973
5 changed files with 31 additions and 57 deletions

View File

@@ -94,9 +94,6 @@
// #define SIE_DEBUG_PERFMON /* SIE performance monitor */
#define OPTION_LPARNAME /* DIAG 204 lparname */
#define OPTION_HTTP_SERVER /* HTTP server support */
#define OPTION_WAKEUP_SELECT_VIA_PIPE /* Use communication pipes to
interrupt selects instead
of inter-thread signaling */
#define OPTION_TIMESTAMP_LOGFILE /* Hardcopy logfile HH:MM:SS */
#define OPTION_IPLPARM /* IPL PARM a la VM */
#define OPTION_CAPPING /* Enable capping cnf stmnt */

View File

@@ -42,8 +42,8 @@
#define S_IWGRP 0
#endif
#ifndef SIGUSR2 // (needs defined for OPTION_WAKEUP_SELECT_VIA_PIPE)
#define SIGUSR2 31 // (the value's unimportant, but we'll be accurate)
#ifndef SIGUSR2
#define SIGUSR2 31
#endif
#ifndef IFNAMSIZ

View File

@@ -867,58 +867,39 @@ do { \
/*-------------------------------------------------------------------*/
/* Pipe signaling support... (i.e. thread signaling via pipe) */
/*-------------------------------------------------------------------*/
#if defined( OPTION_WAKEUP_SELECT_VIA_PIPE )
#define RECV_PIPE_SIGNAL( rfd, lock, flag ) \
do { \
int f; int saved_errno=get_HSO_errno(); BYTE c=0; \
obtain_lock(&(lock)); \
if ((f=(flag))>=1) (flag)=0; \
release_lock(&(lock)); \
if (f>=1) \
VERIFY(read_pipe((rfd),&c,1)==1); \
set_HSO_errno(saved_errno); \
} while (0)
#define RECV_PIPE_SIGNAL( rfd, lock, flag ) \
do { \
int f; int saved_errno=get_HSO_errno(); BYTE c=0; \
obtain_lock(&(lock)); \
if ((f=(flag))>=1) (flag)=0; \
release_lock(&(lock)); \
if (f>=1) \
VERIFY(read_pipe((rfd),&c,1)==1); \
set_HSO_errno(saved_errno); \
} while (0)
#define SEND_PIPE_SIGNAL( wfd, lock, flag ) \
do { \
int f; int saved_errno=get_HSO_errno(); BYTE c=0; \
obtain_lock(&(lock)); \
if ((f=(flag))<=0) (flag)=1; \
release_lock(&(lock)); \
if (f<=0) \
VERIFY(write_pipe((wfd),&c,1)==1); \
set_HSO_errno(saved_errno); \
} while (0)
#define SEND_PIPE_SIGNAL( wfd, lock, flag ) \
do { \
int f; int saved_errno=get_HSO_errno(); BYTE c=0; \
obtain_lock(&(lock)); \
if ((f=(flag))<=0) (flag)=1; \
release_lock(&(lock)); \
if (f<=0) \
VERIFY(write_pipe((wfd),&c,1)==1); \
set_HSO_errno(saved_errno); \
} while (0)
#define SUPPORT_WAKEUP_SELECT_VIA_PIPE( pipe_rfd, maxfd, prset ) \
FD_SET((pipe_rfd),(prset)); \
(maxfd)=(maxfd)>(pipe_rfd)?(maxfd):(pipe_rfd)
#define SUPPORT_WAKEUP_SELECT_VIA_PIPE( pipe_rfd, maxfd, prset ) \
FD_SET((pipe_rfd),(prset)); \
(maxfd)=(maxfd)>(pipe_rfd)?(maxfd):(pipe_rfd)
#define SUPPORT_WAKEUP_CONSOLE_SELECT_VIA_PIPE( maxfd, prset ) SUPPORT_WAKEUP_SELECT_VIA_PIPE( sysblk.cnslrpipe, (maxfd), (prset) )
#define SUPPORT_WAKEUP_SOCKDEV_SELECT_VIA_PIPE( maxfd, prset ) SUPPORT_WAKEUP_SELECT_VIA_PIPE( sysblk.sockrpipe, (maxfd), (prset) )
#define SUPPORT_WAKEUP_CONSOLE_SELECT_VIA_PIPE( maxfd, prset ) SUPPORT_WAKEUP_SELECT_VIA_PIPE( sysblk.cnslrpipe, (maxfd), (prset) )
#define SUPPORT_WAKEUP_SOCKDEV_SELECT_VIA_PIPE( maxfd, prset ) SUPPORT_WAKEUP_SELECT_VIA_PIPE( sysblk.sockrpipe, (maxfd), (prset) )
#define RECV_CONSOLE_THREAD_PIPE_SIGNAL() RECV_PIPE_SIGNAL( sysblk.cnslrpipe, sysblk.cnslpipe_lock, sysblk.cnslpipe_flag )
#define RECV_SOCKDEV_THREAD_PIPE_SIGNAL() RECV_PIPE_SIGNAL( sysblk.sockrpipe, sysblk.sockpipe_lock, sysblk.sockpipe_flag )
#define SIGNAL_CONSOLE_THREAD() SEND_PIPE_SIGNAL( sysblk.cnslwpipe, sysblk.cnslpipe_lock, sysblk.cnslpipe_flag )
#define SIGNAL_SOCKDEV_THREAD() SEND_PIPE_SIGNAL( sysblk.sockwpipe, sysblk.sockpipe_lock, sysblk.sockpipe_flag )
#else // !defined( OPTION_WAKEUP_SELECT_VIA_PIPE )
#define RECV_PIPE_SIGNAL( rfd, lock, flag )
#define SEND_PIPE_SIGNAL( wfd, lock, flag )
#define SUPPORT_WAKEUP_SELECT_VIA_PIPE( pipe_rfd, maxfd, prset )
#define SUPPORT_WAKEUP_CONSOLE_SELECT_VIA_PIPE( maxfd, prset )
#define SUPPORT_WAKEUP_SOCKDEV_SELECT_VIA_PIPE( maxfd, prset )
#define RECV_CONSOLE_THREAD_PIPE_SIGNAL()
#define RECV_SOCKDEV_THREAD_PIPE_SIGNAL()
#define SIGNAL_CONSOLE_THREAD() signal_thread( sysblk.cnsltid, SIGUSR2 )
#define SIGNAL_SOCKDEV_THREAD() signal_thread( sysblk.socktid, SIGUSR2 )
#endif // defined( OPTION_WAKEUP_SELECT_VIA_PIPE )
#define RECV_CONSOLE_THREAD_PIPE_SIGNAL() RECV_PIPE_SIGNAL( sysblk.cnslrpipe, sysblk.cnslpipe_lock, sysblk.cnslpipe_flag )
#define RECV_SOCKDEV_THREAD_PIPE_SIGNAL() RECV_PIPE_SIGNAL( sysblk.sockrpipe, sysblk.sockpipe_lock, sysblk.sockpipe_flag )
#define SIGNAL_CONSOLE_THREAD() SEND_PIPE_SIGNAL( sysblk.cnslwpipe, sysblk.cnslpipe_lock, sysblk.cnslpipe_flag )
#define SIGNAL_SOCKDEV_THREAD() SEND_PIPE_SIGNAL( sysblk.sockwpipe, sysblk.sockpipe_lock, sysblk.sockpipe_flag )
#endif // _HMACROS_H

View File

@@ -573,7 +573,6 @@ struct SYSBLK {
int kaidle; /* Keepalive idle seconds */
int kaintv; /* Keepalive probe interval */
int kacnt; /* Keepalive probe count */
#if defined( OPTION_WAKEUP_SELECT_VIA_PIPE )
LOCK cnslpipe_lock; /* signaled flag access lock */
int cnslpipe_flag; /* 1 == already signaled */
int cnslwpipe; /* fd for sending signal */
@@ -582,7 +581,6 @@ struct SYSBLK {
int sockpipe_flag; /* 1 == already signaled */
int sockwpipe; /* Sockdev signaling pipe Wr */
int sockrpipe; /* Sockdev signaling pipe Rd */
#endif // defined( OPTION_WAKEUP_SELECT_VIA_PIPE )
RADR mbo; /* Measurement block origin */
BYTE mbk; /* Measurement block key */
int mbm; /* Measurement block mode */

2
impl.c
View File

@@ -983,7 +983,6 @@ int dll_count; /* index into array */
}
#endif
#if defined( OPTION_WAKEUP_SELECT_VIA_PIPE )
{
int fds[2];
initialize_lock(&sysblk.cnslpipe_lock);
@@ -997,7 +996,6 @@ int dll_count; /* index into array */
sysblk.sockwpipe=fds[1];
sysblk.sockrpipe=fds[0];
}
#endif // defined( OPTION_WAKEUP_SELECT_VIA_PIPE )
#if !defined(NO_SIGABEND_HANDLER)
{