comparison src/os/unix/ngx_freebsd_init.c @ 373:018569a8f09c

nginx-0.0.7-2004-06-30-19:30:41 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 30 Jun 2004 15:30:41 +0000
parents 446782c909b3
children b670db10cbbd
comparison
equal deleted inserted replaced
372:c9fdfccebc49 373:018569a8f09c
6 /* FreeBSD 3.4 at least */ 6 /* FreeBSD 3.4 at least */
7 char ngx_freebsd_kern_ostype[20]; 7 char ngx_freebsd_kern_ostype[20];
8 char ngx_freebsd_kern_osrelease[20]; 8 char ngx_freebsd_kern_osrelease[20];
9 int ngx_freebsd_kern_osreldate; 9 int ngx_freebsd_kern_osreldate;
10 int ngx_freebsd_hw_ncpu; 10 int ngx_freebsd_hw_ncpu;
11 int ngx_freebsd_machdep_hlt_logical_cpus;
11 int ngx_freebsd_net_inet_tcp_sendspace; 12 int ngx_freebsd_net_inet_tcp_sendspace;
12 int ngx_freebsd_sendfile_nbytes_bug; 13 int ngx_freebsd_sendfile_nbytes_bug;
13 int ngx_freebsd_use_tcp_nopush; 14 int ngx_freebsd_use_tcp_nopush;
14 15
15 /* FreeBSD 5.0 */ 16 /* FreeBSD 5.0 */
38 39
39 40
40 sysctl_t sysctls[] = { 41 sysctl_t sysctls[] = {
41 {"hw.ncpu", 42 {"hw.ncpu",
42 &ngx_freebsd_hw_ncpu, 43 &ngx_freebsd_hw_ncpu,
44 sizeof(int)},
45
46 {"machdep.hlt_logical_cpus",
47 &ngx_freebsd_machdep_hlt_logical_cpus,
43 sizeof(int)}, 48 sizeof(int)},
44 49
45 {"net.inet.tcp.sendspace", 50 {"net.inet.tcp.sendspace",
46 &ngx_freebsd_net_inet_tcp_sendspace, 51 &ngx_freebsd_net_inet_tcp_sendspace,
47 sizeof(int)}, 52 sizeof(int)},
164 size = sysctls[i].size; 169 size = sysctls[i].size;
165 if (sysctlbyname(sysctls[i].name, sysctls[i].value, &size, NULL, 0) 170 if (sysctlbyname(sysctls[i].name, sysctls[i].value, &size, NULL, 0)
166 == -1) { 171 == -1) {
167 err = errno; 172 err = errno;
168 if (err != NGX_ENOENT) { 173 if (err != NGX_ENOENT) {
174 if (sysctls[i].value == &ngx_freebsd_machdep_hlt_logical_cpus) {
175 continue;
176 }
177
169 ngx_log_error(NGX_LOG_ALERT, log, err, 178 ngx_log_error(NGX_LOG_ALERT, log, err,
170 "sysctlbyname(%s) failed", sysctls[i].name); 179 "sysctlbyname(%s) failed", sysctls[i].name);
171 return NGX_ERROR; 180 return NGX_ERROR;
172 } 181 }
173 182
175 ngx_log_error(NGX_LOG_INFO, log, 0, "%s: %d", 184 ngx_log_error(NGX_LOG_INFO, log, 0, "%s: %d",
176 sysctls[i].name, *sysctls[i].value); 185 sysctls[i].name, *sysctls[i].value);
177 } 186 }
178 } 187 }
179 188
189 if (ngx_freebsd_machdep_hlt_logical_cpus) {
190 ngx_ncpu = ngx_freebsd_hw_ncpu / 2;
191 } else {
192 ngx_ncpu = ngx_freebsd_hw_ncpu;
193 }
194
180 return ngx_posix_init(log); 195 return ngx_posix_init(log);
181 } 196 }