Lines Matching refs:dm
575 static void post_status(struct hv_dynmem_device *dm);
975 struct hv_dynmem_device *dm = &dm_device;
982 pg_start = dm->ha_wrk.ha_page_range.finfo.start_page;
983 pfn_cnt = dm->ha_wrk.ha_page_range.finfo.page_cnt;
985 rg_start = dm->ha_wrk.ha_region_range.finfo.start_page;
986 rg_sz = dm->ha_wrk.ha_region_range.finfo.page_cnt;
988 if (rg_start == 0 && !dm->host_specified_ha_region) {
1004 dm->num_pages_added += resp.page_count;
1036 dm->state = DM_INITIALIZED;
1038 vmbus_sendpacket(dm->dev->channel, &resp,
1044 static void process_info(struct hv_dynmem_device *dm, struct dm_info_msg *msg)
1057 dm->max_dynamic_page_count = *max_page_count;
1100 static unsigned long get_pages_committed(struct hv_dynmem_device *dm)
1103 dm->num_pages_ballooned +
1104 (dm->num_pages_added > dm->num_pages_onlined ?
1105 dm->num_pages_added - dm->num_pages_onlined : 0) +
1119 static void post_status(struct hv_dynmem_device *dm)
1150 num_pages_committed = get_pages_committed(dm);
1153 vm_memory_committed(), dm->num_pages_ballooned,
1154 dm->num_pages_added, dm->num_pages_onlined);
1176 vmbus_sendpacket(dm->dev->channel, &status,
1182 static void free_balloon_pages(struct hv_dynmem_device *dm,
1194 dm->num_pages_ballooned--;
1200 static unsigned int alloc_balloon_pages(struct hv_dynmem_device *dm,
1224 dm->num_pages_ballooned += alloc_unit;
1340 static void balloon_down(struct hv_dynmem_device *dm,
1347 unsigned int prev_pages_ballooned = dm->num_pages_ballooned;
1350 free_balloon_pages(dm, &range_array[i]);
1355 prev_pages_ballooned - dm->num_pages_ballooned);
1370 dm->state = DM_INITIALIZED;
1377 struct hv_dynmem_device *dm = dm_dev;
1387 post_status(dm);
1405 static void version_resp(struct hv_dynmem_device *dm,
1417 complete(&dm->host_event);
1427 if (dm->next_version == 0)
1434 version_req.version.version = dm->next_version;
1435 dm->version = version_req.version.version;
1443 dm->next_version = DYNMEM_PROTOCOL_VERSION_WIN7;
1447 dm->next_version = 0;
1451 ret = vmbus_sendpacket(dm->dev->channel, &version_req,
1462 dm->state = DM_INIT_ERROR;
1463 complete(&dm->host_event);
1466 static void cap_resp(struct hv_dynmem_device *dm,
1471 dm->state = DM_INIT_ERROR;
1473 complete(&dm->host_event);
1483 struct hv_dynmem_device *dm = hv_get_drvdata(dev);
1499 version_resp(dm,
1504 cap_resp(dm,
1514 if (dm->state == DM_BALLOON_UP)
1517 dm->state = DM_BALLOON_UP;
1528 dm->state = DM_BALLOON_DOWN;
1529 balloon_down(dm,
1534 if (dm->state == DM_HOT_ADD)
1536 dm->state = DM_HOT_ADD;
1543 dm->host_specified_ha_region = false;
1545 dm->ha_wrk.ha_page_range = *ha_pg_range;
1546 dm->ha_wrk.ha_region_range.page_range = 0;
1553 dm->host_specified_ha_region = true;
1556 dm->ha_wrk.ha_page_range = *ha_pg_range;
1557 dm->ha_wrk.ha_region_range = *ha_region;
1563 process_info(dm, (struct dm_info_msg *)dm_msg);
1851 struct hv_dynmem_device *dm = f->private;
1855 DYNMEM_MAJOR_VERSION(dm->version),
1856 DYNMEM_MINOR_VERSION(dm->version));
1867 seq_printf(f, "%-22s: %u", "state", dm->state);
1868 switch (dm->state) {
1896 seq_printf(f, "%-22s: %u\n", "pages_added", dm->num_pages_added);
1899 seq_printf(f, "%-22s: %u\n", "pages_onlined", dm->num_pages_onlined);
1902 seq_printf(f, "%-22s: %u\n", "pages_ballooned", dm->num_pages_ballooned);
1905 get_pages_committed(dm));
1908 dm->max_dynamic_page_count);
2019 struct hv_dynmem_device *dm = hv_get_drvdata(dev);
2023 if (dm->num_pages_ballooned != 0)
2024 pr_warn("Ballooned pages: %d\n", dm->num_pages_ballooned);
2026 hv_balloon_debugfs_exit(dm);
2028 cancel_work_sync(&dm->balloon_wrk.wrk);
2029 cancel_work_sync(&dm->ha_wrk.wrk);
2031 kthread_stop(dm->thread);
2048 list_for_each_entry_safe(has, tmp, &dm->ha_region_list, list) {
2060 struct hv_dynmem_device *dm = hv_get_drvdata(hv_dev);
2064 cancel_work_sync(&dm->balloon_wrk.wrk);
2065 cancel_work_sync(&dm->ha_wrk.wrk);
2067 if (dm->thread) {
2068 kthread_stop(dm->thread);
2069 dm->thread = NULL;