Print this page
patch tsoome-feedback


 714 
 715 #ifdef DEBUG
 716         dprintf((stderr, "old_total=%d\n", sysncpus));
 717         for (i = 0; i < sysncpus; i++) {
 718                 dprintf((stderr, "old_cpu_list[%d]=%d\n", i, syscpuids[i]));
 719         }
 720         dprintf((stderr, "new_total=%d\n", newncpus));
 721         for (i = 0; i < newncpus; i++) {
 722                 dprintf((stderr, "new_cpu_list[%d]=%d\n", i, newcpuids[i]));
 723         }
 724 #endif /* DEBUG */
 725 
 726         (void) rcm_request_capacity_change(rcm->hdl, RCM_CPU_ALL,
 727             RCM_QUERY|RCM_SCOPE, nvl, &rcm_info);
 728 
 729         rv = add_rcm_clients(&ri_hdl->cpu_cap_clients, rcm, rcm_info, 0, NULL);
 730 
 731 out:
 732         s_free(syscpuids);
 733         s_free(newcpuids);
 734         if (nvl != NULL)
 735                 nvlist_free(nvl);
 736         if (rcm_info != NULL)
 737                 rcm_free_info(rcm_info);
 738 
 739         return (rv);
 740 }
 741 
 742 static int
 743 syscpus(cpuid_t **cpuids, int *ncpus)
 744 {
 745         kstat_t         *ksp;
 746         kstat_ctl_t     *kc;
 747         cpuid_t         *cp;
 748         int             i;
 749 
 750         if ((*ncpus = sysconf(_SC_NPROCESSORS_CONF)) == -1) {
 751                 dprintf((stderr, "sysconf: %s\n", errno));
 752                 return (-1);
 753         }
 754 


1754                 }
1755         }
1756         return (NULL);
1757 }
1758 
1759 /*
1760  * Create and link attachment point handle.
1761  */
1762 static ri_ap_t *
1763 ri_ap_alloc(char *ap_id, ri_hdl_t *hdl)
1764 {
1765         ri_ap_t         *ap, *tmp;
1766 
1767         if ((ap = calloc(1, sizeof (*ap))) == NULL) {
1768                 dprintf((stderr, "calloc: %s\n", strerror(errno)));
1769                 return (NULL);
1770         }
1771 
1772         if (nvlist_alloc(&ap->conf_props, NV_UNIQUE_NAME, 0) != 0 ||
1773             nvlist_add_string(ap->conf_props, RI_AP_REQ_ID, ap_id) != 0) {
1774                 if (ap->conf_props != NULL)
1775                         nvlist_free(ap->conf_props);
1776                 free(ap);
1777                 return (NULL);
1778         }
1779 
1780         if ((tmp = hdl->aps) == NULL) {
1781                 hdl->aps = ap;
1782         } else {
1783                 while (tmp->next != NULL) {
1784                         tmp = tmp->next;
1785                 }
1786                 tmp->next = ap;
1787         }
1788 
1789         return (ap);
1790 }
1791 
1792 static ri_dev_t *
1793 ri_dev_alloc(void)
1794 {




 714 
 715 #ifdef DEBUG
 716         dprintf((stderr, "old_total=%d\n", sysncpus));
 717         for (i = 0; i < sysncpus; i++) {
 718                 dprintf((stderr, "old_cpu_list[%d]=%d\n", i, syscpuids[i]));
 719         }
 720         dprintf((stderr, "new_total=%d\n", newncpus));
 721         for (i = 0; i < newncpus; i++) {
 722                 dprintf((stderr, "new_cpu_list[%d]=%d\n", i, newcpuids[i]));
 723         }
 724 #endif /* DEBUG */
 725 
 726         (void) rcm_request_capacity_change(rcm->hdl, RCM_CPU_ALL,
 727             RCM_QUERY|RCM_SCOPE, nvl, &rcm_info);
 728 
 729         rv = add_rcm_clients(&ri_hdl->cpu_cap_clients, rcm, rcm_info, 0, NULL);
 730 
 731 out:
 732         s_free(syscpuids);
 733         s_free(newcpuids);

 734         nvlist_free(nvl);
 735         if (rcm_info != NULL)
 736                 rcm_free_info(rcm_info);
 737 
 738         return (rv);
 739 }
 740 
 741 static int
 742 syscpus(cpuid_t **cpuids, int *ncpus)
 743 {
 744         kstat_t         *ksp;
 745         kstat_ctl_t     *kc;
 746         cpuid_t         *cp;
 747         int             i;
 748 
 749         if ((*ncpus = sysconf(_SC_NPROCESSORS_CONF)) == -1) {
 750                 dprintf((stderr, "sysconf: %s\n", errno));
 751                 return (-1);
 752         }
 753 


1753                 }
1754         }
1755         return (NULL);
1756 }
1757 
1758 /*
1759  * Create and link attachment point handle.
1760  */
1761 static ri_ap_t *
1762 ri_ap_alloc(char *ap_id, ri_hdl_t *hdl)
1763 {
1764         ri_ap_t         *ap, *tmp;
1765 
1766         if ((ap = calloc(1, sizeof (*ap))) == NULL) {
1767                 dprintf((stderr, "calloc: %s\n", strerror(errno)));
1768                 return (NULL);
1769         }
1770 
1771         if (nvlist_alloc(&ap->conf_props, NV_UNIQUE_NAME, 0) != 0 ||
1772             nvlist_add_string(ap->conf_props, RI_AP_REQ_ID, ap_id) != 0) {

1773                 nvlist_free(ap->conf_props);
1774                 free(ap);
1775                 return (NULL);
1776         }
1777 
1778         if ((tmp = hdl->aps) == NULL) {
1779                 hdl->aps = ap;
1780         } else {
1781                 while (tmp->next != NULL) {
1782                         tmp = tmp->next;
1783                 }
1784                 tmp->next = ap;
1785         }
1786 
1787         return (ap);
1788 }
1789 
1790 static ri_dev_t *
1791 ri_dev_alloc(void)
1792 {