Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(380)

Side by Side Diff: base/process/process_metrics_linux.cc

Issue 2766623002: Revert of Fix free memory calculation. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/process/process_metrics_ios.cc ('k') | base/process/process_metrics_mac.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/process/process_metrics.h" 5 #include "base/process/process_metrics.h"
6 6
7 #include <dirent.h> 7 #include <dirent.h>
8 #include <fcntl.h> 8 #include <fcntl.h>
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 const size_t kDiskWrites = 7; 525 const size_t kDiskWrites = 7;
526 const size_t kDiskWritesMerged = 8; 526 const size_t kDiskWritesMerged = 8;
527 const size_t kDiskSectorsWritten = 9; 527 const size_t kDiskSectorsWritten = 9;
528 const size_t kDiskWriteTime = 10; 528 const size_t kDiskWriteTime = 10;
529 const size_t kDiskIO = 11; 529 const size_t kDiskIO = 11;
530 const size_t kDiskIOTime = 12; 530 const size_t kDiskIOTime = 12;
531 const size_t kDiskWeightedIOTime = 13; 531 const size_t kDiskWeightedIOTime = 13;
532 532
533 } // namespace 533 } // namespace
534 534
535 SystemMemoryInfoKB::SystemMemoryInfoKB() {
536 total = 0;
537 free = 0;
538 #if defined(OS_LINUX)
539 available = 0;
540 #endif
541 buffers = 0;
542 cached = 0;
543 active_anon = 0;
544 inactive_anon = 0;
545 active_file = 0;
546 inactive_file = 0;
547 swap_total = 0;
548 swap_free = 0;
549 dirty = 0;
550
551 pswpin = 0;
552 pswpout = 0;
553 pgmajfault = 0;
554
555 #ifdef OS_CHROMEOS
556 shmem = 0;
557 slab = 0;
558 gem_objects = -1;
559 gem_size = -1;
560 #endif
561 }
562
563 SystemMemoryInfoKB::SystemMemoryInfoKB(const SystemMemoryInfoKB& other) =
564 default;
565
535 std::unique_ptr<Value> SystemMemoryInfoKB::ToValue() const { 566 std::unique_ptr<Value> SystemMemoryInfoKB::ToValue() const {
536 std::unique_ptr<DictionaryValue> res(new DictionaryValue()); 567 std::unique_ptr<DictionaryValue> res(new DictionaryValue());
537 568
538 res->SetInteger("total", total); 569 res->SetInteger("total", total);
539 res->SetInteger("free", free); 570 res->SetInteger("free", free);
571 #if defined(OS_LINUX)
540 res->SetInteger("available", available); 572 res->SetInteger("available", available);
573 #endif
541 res->SetInteger("buffers", buffers); 574 res->SetInteger("buffers", buffers);
542 res->SetInteger("cached", cached); 575 res->SetInteger("cached", cached);
543 res->SetInteger("active_anon", active_anon); 576 res->SetInteger("active_anon", active_anon);
544 res->SetInteger("inactive_anon", inactive_anon); 577 res->SetInteger("inactive_anon", inactive_anon);
545 res->SetInteger("active_file", active_file); 578 res->SetInteger("active_file", active_file);
546 res->SetInteger("inactive_file", inactive_file); 579 res->SetInteger("inactive_file", inactive_file);
547 res->SetInteger("swap_total", swap_total); 580 res->SetInteger("swap_total", swap_total);
548 res->SetInteger("swap_free", swap_free); 581 res->SetInteger("swap_free", swap_free);
549 res->SetInteger("swap_used", swap_total - swap_free); 582 res->SetInteger("swap_used", swap_total - swap_free);
550 res->SetInteger("dirty", dirty); 583 res->SetInteger("dirty", dirty);
551 res->SetInteger("reclaimable", reclaimable);
552 res->SetInteger("pswpin", pswpin); 584 res->SetInteger("pswpin", pswpin);
553 res->SetInteger("pswpout", pswpout); 585 res->SetInteger("pswpout", pswpout);
554 res->SetInteger("pgmajfault", pgmajfault); 586 res->SetInteger("pgmajfault", pgmajfault);
555 #ifdef OS_CHROMEOS 587 #ifdef OS_CHROMEOS
556 res->SetInteger("shmem", shmem); 588 res->SetInteger("shmem", shmem);
557 res->SetInteger("slab", slab); 589 res->SetInteger("slab", slab);
558 res->SetInteger("gem_objects", gem_objects); 590 res->SetInteger("gem_objects", gem_objects);
559 res->SetInteger("gem_size", gem_size); 591 res->SetInteger("gem_size", gem_size);
560 #endif 592 #endif
561 593
(...skipping 27 matching lines...) Expand all
589 DLOG(WARNING) << "meminfo: tokens: " << tokens.size() 621 DLOG(WARNING) << "meminfo: tokens: " << tokens.size()
590 << " malformed line: " << line.as_string(); 622 << " malformed line: " << line.as_string();
591 continue; 623 continue;
592 } 624 }
593 625
594 int* target = NULL; 626 int* target = NULL;
595 if (tokens[0] == "MemTotal:") 627 if (tokens[0] == "MemTotal:")
596 target = &meminfo->total; 628 target = &meminfo->total;
597 else if (tokens[0] == "MemFree:") 629 else if (tokens[0] == "MemFree:")
598 target = &meminfo->free; 630 target = &meminfo->free;
631 #if defined(OS_LINUX)
599 else if (tokens[0] == "MemAvailable:") 632 else if (tokens[0] == "MemAvailable:")
600 target = &meminfo->available; 633 target = &meminfo->available;
634 #endif
601 else if (tokens[0] == "Buffers:") 635 else if (tokens[0] == "Buffers:")
602 target = &meminfo->buffers; 636 target = &meminfo->buffers;
603 else if (tokens[0] == "Cached:") 637 else if (tokens[0] == "Cached:")
604 target = &meminfo->cached; 638 target = &meminfo->cached;
605 else if (tokens[0] == "Active(anon):") 639 else if (tokens[0] == "Active(anon):")
606 target = &meminfo->active_anon; 640 target = &meminfo->active_anon;
607 else if (tokens[0] == "Inactive(anon):") 641 else if (tokens[0] == "Inactive(anon):")
608 target = &meminfo->inactive_anon; 642 target = &meminfo->inactive_anon;
609 else if (tokens[0] == "Active(file):") 643 else if (tokens[0] == "Active(file):")
610 target = &meminfo->active_file; 644 target = &meminfo->active_file;
611 else if (tokens[0] == "Inactive(file):") 645 else if (tokens[0] == "Inactive(file):")
612 target = &meminfo->inactive_file; 646 target = &meminfo->inactive_file;
613 else if (tokens[0] == "SwapTotal:") 647 else if (tokens[0] == "SwapTotal:")
614 target = &meminfo->swap_total; 648 target = &meminfo->swap_total;
615 else if (tokens[0] == "SwapFree:") 649 else if (tokens[0] == "SwapFree:")
616 target = &meminfo->swap_free; 650 target = &meminfo->swap_free;
617 else if (tokens[0] == "Dirty:") 651 else if (tokens[0] == "Dirty:")
618 target = &meminfo->dirty; 652 target = &meminfo->dirty;
619 else if (tokens[0] == "SReclaimable:")
620 target = &meminfo->reclaimable;
621 #if defined(OS_CHROMEOS) 653 #if defined(OS_CHROMEOS)
622 // Chrome OS has a tweaked kernel that allows us to query Shmem, which is 654 // Chrome OS has a tweaked kernel that allows us to query Shmem, which is
623 // usually video memory otherwise invisible to the OS. 655 // usually video memory otherwise invisible to the OS.
624 else if (tokens[0] == "Shmem:") 656 else if (tokens[0] == "Shmem:")
625 target = &meminfo->shmem; 657 target = &meminfo->shmem;
626 else if (tokens[0] == "Slab:") 658 else if (tokens[0] == "Slab:")
627 target = &meminfo->slab; 659 target = &meminfo->slab;
628 #endif 660 #endif
629 if (target) 661 if (target)
630 StringToInt(tokens[1], target); 662 StringToInt(tokens[1], target);
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 #if defined(OS_LINUX) 966 #if defined(OS_LINUX)
935 int ProcessMetrics::GetIdleWakeupsPerSecond() { 967 int ProcessMetrics::GetIdleWakeupsPerSecond() {
936 uint64_t wake_ups; 968 uint64_t wake_ups;
937 const char kWakeupStat[] = "se.statistics.nr_wakeups"; 969 const char kWakeupStat[] = "se.statistics.nr_wakeups";
938 return ReadProcSchedAndGetFieldAsUint64(process_, kWakeupStat, &wake_ups) ? 970 return ReadProcSchedAndGetFieldAsUint64(process_, kWakeupStat, &wake_ups) ?
939 CalculateIdleWakeupsPerSecond(wake_ups) : 0; 971 CalculateIdleWakeupsPerSecond(wake_ups) : 0;
940 } 972 }
941 #endif // defined(OS_LINUX) 973 #endif // defined(OS_LINUX)
942 974
943 } // namespace base 975 } // namespace base
OLDNEW
« no previous file with comments | « base/process/process_metrics_ios.cc ('k') | base/process/process_metrics_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698