Example #1
0
/*
 * This routine is called after all the "normal" MP startup has
 * been done; a good place to start watching xen store for virtual
 * cpu hot plug events.
 */
void
mach_cpucontext_fini(void)
{

	cpu_config_tq = taskq_create("vcpu config taskq", 1,
	    maxclsyspri - 1, 1, 1, TASKQ_PREPOPULATE);

	(void) xs_register_xenbus_callback(do_cpu_config_watch);
}
Example #2
0
/*
 * Basic initialization of the balloon thread.  Set all of our variables,
 * and register a callback for later when we can register a xenbus watch.
 */
void
balloon_init(pgcnt_t nr_pages)
{
	domid_t domid = DOMID_SELF;

	bln_stats.bln_current_pages = bln_stats.bln_low = nr_pages;
	bln_stats.bln_new_target = bln_stats.bln_high = nr_pages;
	bln_stats.bln_max_pages = nr_pages;
	cv_init(&bln_cv, NULL, CV_DEFAULT, NULL);

	bln_stats.bln_hard_limit = (spgcnt_t)HYPERVISOR_memory_op(
	    XENMEM_maximum_reservation, &domid);

	(void) xs_register_xenbus_callback(balloon_config_watch);
}