Ejemplo n.º 1
0
int dump_rapl_power_info(FILE *writedest)
{
    int socket;
    static uint64_t *rapl_flags = NULL;
    struct rapl_power_info info;
    static uint64_t sockets = 0;

    if (rapl_flags == NULL || sockets == 0)
    {
        sockets = num_sockets();
        if (rapl_storage(NULL, &rapl_flags))
        {
            return -1;
        }
    }
    for (socket = 0; socket < sockets; socket++)
    {
        get_rapl_power_info(socket, &info);
        if (*rapl_flags & PKG_POWER_INFO)
        {
            fprintf(writedest, "Socket: %d\n", socket);
            fprintf(writedest, "   pkg_max_power   (W) = %8.4lf  pkg_min_power    (W) = %8.4lf\n", info.pkg_max_power, info.pkg_min_power);
            fprintf(writedest, "   pkg_max_window  (s) = %8.4lf  pkg_therm_power  (W) = %8.4lf\n", info.pkg_max_window, info.pkg_therm_power);
        }
        if (*rapl_flags & DRAM_POWER_INFO)
        {
            fprintf(writedest, "Socket: %d\n", socket);
            fprintf(writedest, "   dram_max_power  (W) = %8.4lf  dram_min_power   (W) = %8.4lf\n", info.dram_max_power, info.dram_min_power);
            fprintf(writedest, "   dram_max_window (s) = %8.4lf  dram_therm_power (W) = %8.4lf\n", info.dram_max_window, info.dram_therm_power);
        }
    }
    return 0;
}
Ejemplo n.º 2
0
void set_to_defaults()
{
    int socket = 0;
    int numsockets = num_sockets();
    struct rapl_power_info raplinfo;
    struct rapl_limit socketlim, socketlim2, dramlim;
    fprintf(stdout, "Setting Defaults\n");
    for (socket = 0; socket < numsockets; socket++)
    {
        get_rapl_power_info(socket, &raplinfo);
        socketlim.bits = 0;
        socketlim.watts = raplinfo.pkg_therm_power;
        socketlim.seconds = 1;
        socketlim2.bits = 0;
        socketlim2.watts = raplinfo.pkg_therm_power * 1.2;
        socketlim2.seconds = 3;
        dramlim.bits = 0;
        dramlim.watts = raplinfo.dram_max_power;
        dramlim.seconds = 1;
        if (ISVERBOSE)
        {
            dump_rapl_limit(&socketlim, stdout);
            dump_rapl_limit(&socketlim2, stdout);
            dump_rapl_limit(&dramlim, stdout);
        }
        set_pkg_rapl_limit(socket, &socketlim, &socketlim2);
        set_dram_rapl_limit(socket, &dramlim);
    }
}