Print this page
OS-2366 ddi_periodic_add(9F) is entirely rubbish (MORE)
OS-2366 ddi_periodic_add(9F) is entirely rubbish

*** 21,31 **** /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ /* * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 2011, Joyent, Inc. All rights reserved. */ #include <sys/param.h> #include <sys/t_lock.h> #include <sys/types.h> --- 21,31 ---- /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ /* * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 2013, Joyent, Inc. All rights reserved. */ #include <sys/param.h> #include <sys/t_lock.h> #include <sys/types.h>
*** 62,72 **** #include <sys/cyclic.h> #include <sys/cpupart.h> #include <sys/rctl.h> #include <sys/task.h> #include <sys/sdt.h> ! #include <sys/ddi_timer.h> #include <sys/random.h> #include <sys/modctl.h> #include <sys/zone.h> /* --- 62,72 ---- #include <sys/cyclic.h> #include <sys/cpupart.h> #include <sys/rctl.h> #include <sys/task.h> #include <sys/sdt.h> ! #include <sys/ddi_periodic.h> #include <sys/random.h> #include <sys/modctl.h> #include <sys/zone.h> /*
*** 314,324 **** int tod_needsync = 0; /* need to sync tod chip with software time */ static int tod_broken = 0; /* clock chip doesn't work */ time_t boot_time = 0; /* Boot time in seconds since 1970 */ cyclic_id_t clock_cyclic; /* clock()'s cyclic_id */ cyclic_id_t deadman_cyclic; /* deadman()'s cyclic_id */ - cyclic_id_t ddi_timer_cyclic; /* cyclic_timer()'s cyclic_id */ extern void clock_tick_schedule(int); static int lgrp_ticks; /* counter to schedule lgrp load calcs */ --- 314,323 ----
*** 945,955 **** } void clock_init(void) { ! cyc_handler_t clk_hdlr, timer_hdlr, lbolt_hdlr; cyc_time_t clk_when, lbolt_when; int i, sz; intptr_t buf; /* --- 944,954 ---- } void clock_init(void) { ! cyc_handler_t clk_hdlr, lbolt_hdlr; cyc_time_t clk_when, lbolt_when; int i, sz; intptr_t buf; /*
*** 961,978 **** clk_when.cyt_when = 0; clk_when.cyt_interval = nsec_per_tick; /* - * cyclic_timer is dedicated to the ddi interface, which - * uses the same clock resolution as the system one. - */ - timer_hdlr.cyh_func = (cyc_func_t)cyclic_timer; - timer_hdlr.cyh_level = CY_LOCK_LEVEL; - timer_hdlr.cyh_arg = NULL; - - /* * The lbolt cyclic will be reprogramed to fire at a nsec_per_tick * interval to satisfy performance needs of the DDI lbolt consumers. * It is off by default. */ lbolt_hdlr.cyh_func = (cyc_func_t)lbolt_cyclic; --- 960,969 ----
*** 1043,1053 **** * Grab cpu_lock and install all three cyclics. */ mutex_enter(&cpu_lock); clock_cyclic = cyclic_add(&clk_hdlr, &clk_when); - ddi_timer_cyclic = cyclic_add(&timer_hdlr, &clk_when); lb_info->id.lbi_cyclic_id = cyclic_add(&lbolt_hdlr, &lbolt_when); mutex_exit(&cpu_lock); } --- 1034,1043 ----