summaryrefslogtreecommitdiff
path: root/storage/perfschema/pfs_builtin_memory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/perfschema/pfs_builtin_memory.cc')
-rw-r--r--storage/perfschema/pfs_builtin_memory.cc382
1 files changed, 382 insertions, 0 deletions
diff --git a/storage/perfschema/pfs_builtin_memory.cc b/storage/perfschema/pfs_builtin_memory.cc
new file mode 100644
index 00000000000..6955f1a8ec3
--- /dev/null
+++ b/storage/perfschema/pfs_builtin_memory.cc
@@ -0,0 +1,382 @@
+/* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License, version 2.0,
+ as published by the Free Software Foundation.
+
+ This program is also distributed with certain software (including
+ but not limited to OpenSSL) that is licensed under separate terms,
+ as designated in a particular file or component or in included license
+ documentation. The authors of MySQL hereby grant you an additional
+ permission to link the program and your derivative works with the
+ separately licensed software that they have included with MySQL.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License, version 2.0, for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
+
+#include "my_global.h"
+#include "m_string.h"
+#include "pfs_global.h"
+#include "pfs_builtin_memory.h"
+
+PFS_builtin_memory_class builtin_memory_mutex;
+PFS_builtin_memory_class builtin_memory_rwlock;
+PFS_builtin_memory_class builtin_memory_cond;
+PFS_builtin_memory_class builtin_memory_file;
+PFS_builtin_memory_class builtin_memory_socket;
+PFS_builtin_memory_class builtin_memory_mdl;
+PFS_builtin_memory_class builtin_memory_file_handle;
+
+PFS_builtin_memory_class builtin_memory_account;
+PFS_builtin_memory_class builtin_memory_account_waits;
+PFS_builtin_memory_class builtin_memory_account_stages;
+PFS_builtin_memory_class builtin_memory_account_statements;
+PFS_builtin_memory_class builtin_memory_account_transactions;
+PFS_builtin_memory_class builtin_memory_account_memory;
+
+PFS_builtin_memory_class builtin_memory_global_stages;
+PFS_builtin_memory_class builtin_memory_global_statements;
+PFS_builtin_memory_class builtin_memory_global_memory;
+
+PFS_builtin_memory_class builtin_memory_host;
+PFS_builtin_memory_class builtin_memory_host_waits;
+PFS_builtin_memory_class builtin_memory_host_stages;
+PFS_builtin_memory_class builtin_memory_host_statements;
+PFS_builtin_memory_class builtin_memory_host_transactions;
+PFS_builtin_memory_class builtin_memory_host_memory;
+
+PFS_builtin_memory_class builtin_memory_thread;
+PFS_builtin_memory_class builtin_memory_thread_waits;
+PFS_builtin_memory_class builtin_memory_thread_stages;
+PFS_builtin_memory_class builtin_memory_thread_statements;
+PFS_builtin_memory_class builtin_memory_thread_transactions;
+PFS_builtin_memory_class builtin_memory_thread_memory;
+
+PFS_builtin_memory_class builtin_memory_thread_waits_history;
+PFS_builtin_memory_class builtin_memory_thread_stages_history;
+PFS_builtin_memory_class builtin_memory_thread_statements_history;
+PFS_builtin_memory_class builtin_memory_thread_statements_history_tokens;
+PFS_builtin_memory_class builtin_memory_thread_statements_history_sqltext;
+PFS_builtin_memory_class builtin_memory_thread_statements_stack;
+PFS_builtin_memory_class builtin_memory_thread_statements_stack_tokens;
+PFS_builtin_memory_class builtin_memory_thread_statements_stack_sqltext;
+PFS_builtin_memory_class builtin_memory_thread_transaction_history;
+PFS_builtin_memory_class builtin_memory_thread_session_connect_attrs;
+
+PFS_builtin_memory_class builtin_memory_user;
+PFS_builtin_memory_class builtin_memory_user_waits;
+PFS_builtin_memory_class builtin_memory_user_stages;
+PFS_builtin_memory_class builtin_memory_user_statements;
+PFS_builtin_memory_class builtin_memory_user_transactions;
+PFS_builtin_memory_class builtin_memory_user_memory;
+
+PFS_builtin_memory_class builtin_memory_mutex_class;
+PFS_builtin_memory_class builtin_memory_rwlock_class;
+PFS_builtin_memory_class builtin_memory_cond_class;
+PFS_builtin_memory_class builtin_memory_thread_class;
+PFS_builtin_memory_class builtin_memory_file_class;
+PFS_builtin_memory_class builtin_memory_socket_class;
+PFS_builtin_memory_class builtin_memory_stage_class;
+PFS_builtin_memory_class builtin_memory_statement_class;
+PFS_builtin_memory_class builtin_memory_memory_class;
+
+PFS_builtin_memory_class builtin_memory_setup_actor;
+PFS_builtin_memory_class builtin_memory_setup_object;
+
+PFS_builtin_memory_class builtin_memory_digest;
+PFS_builtin_memory_class builtin_memory_digest_tokens;
+
+PFS_builtin_memory_class builtin_memory_stages_history_long;
+PFS_builtin_memory_class builtin_memory_statements_history_long;
+PFS_builtin_memory_class builtin_memory_statements_history_long_tokens;
+PFS_builtin_memory_class builtin_memory_statements_history_long_sqltext;
+PFS_builtin_memory_class builtin_memory_transactions_history_long;
+PFS_builtin_memory_class builtin_memory_waits_history_long;
+
+PFS_builtin_memory_class builtin_memory_table;
+PFS_builtin_memory_class builtin_memory_table_share;
+PFS_builtin_memory_class builtin_memory_table_share_index;
+PFS_builtin_memory_class builtin_memory_table_share_lock;
+
+PFS_builtin_memory_class builtin_memory_program;
+PFS_builtin_memory_class builtin_memory_prepared_stmt;
+
+PFS_builtin_memory_class builtin_memory_scalable_buffer;
+
+static void init_builtin_memory_class(PFS_builtin_memory_class *klass, const char* name)
+{
+ klass->m_class.m_type= PFS_CLASS_MEMORY;
+ klass->m_class.m_enabled= true; /* Immutable */
+ klass->m_class.m_timed= false; /* Immutable */
+ klass->m_class.m_flags= PSI_FLAG_GLOBAL;
+ klass->m_class.m_event_name_index= 0;
+ my_snprintf(klass->m_class.m_name, sizeof(klass->m_class.m_name), "%.*s",
+ PFS_MAX_INFO_NAME_LENGTH - 1, name);
+ klass->m_class.m_name_length= strlen(name);
+ DBUG_ASSERT(klass->m_class.m_name_length < sizeof(klass->m_class.m_name));
+ klass->m_class.m_timer= NULL;
+
+ klass->m_stat.reset();
+}
+
+void init_all_builtin_memory_class()
+{
+ init_builtin_memory_class( & builtin_memory_mutex,
+ "memory/performance_schema/mutex_instances");
+ init_builtin_memory_class( & builtin_memory_rwlock,
+ "memory/performance_schema/rwlock_instances");
+ init_builtin_memory_class( & builtin_memory_cond,
+ "memory/performance_schema/cond_instances");
+ init_builtin_memory_class( & builtin_memory_file,
+ "memory/performance_schema/file_instances");
+ init_builtin_memory_class( & builtin_memory_socket,
+ "memory/performance_schema/socket_instances");
+ init_builtin_memory_class( & builtin_memory_mdl,
+ "memory/performance_schema/metadata_locks");
+ init_builtin_memory_class( & builtin_memory_file_handle,
+ "memory/performance_schema/file_handle");
+
+ init_builtin_memory_class( & builtin_memory_account,
+ "memory/performance_schema/accounts");
+ init_builtin_memory_class( & builtin_memory_account_waits,
+ "memory/performance_schema/events_waits_summary_by_account_by_event_name");
+ init_builtin_memory_class( & builtin_memory_account_stages,
+ "memory/performance_schema/events_stages_summary_by_account_by_event_name");
+ init_builtin_memory_class( & builtin_memory_account_statements,
+ "memory/performance_schema/events_statements_summary_by_account_by_event_name");
+ init_builtin_memory_class( & builtin_memory_account_transactions,
+ "memory/performance_schema/events_transactions_summary_by_account_by_event_name");
+ init_builtin_memory_class( & builtin_memory_account_memory,
+ "memory/performance_schema/memory_summary_by_account_by_event_name");
+
+ init_builtin_memory_class( & builtin_memory_global_stages,
+ "memory/performance_schema/events_stages_summary_global_by_event_name");
+ init_builtin_memory_class( & builtin_memory_global_statements,
+ "memory/performance_schema/events_statements_summary_global_by_event_name");
+ init_builtin_memory_class( & builtin_memory_global_memory,
+ "memory/performance_schema/memory_summary_global_by_event_name");
+
+ init_builtin_memory_class( & builtin_memory_host,
+ "memory/performance_schema/hosts");
+ init_builtin_memory_class( & builtin_memory_host_waits,
+ "memory/performance_schema/events_waits_summary_by_host_by_event_name");
+ init_builtin_memory_class( & builtin_memory_host_stages,
+ "memory/performance_schema/events_stages_summary_by_host_by_event_name");
+ init_builtin_memory_class( & builtin_memory_host_statements,
+ "memory/performance_schema/events_statements_summary_by_host_by_event_name");
+ init_builtin_memory_class( & builtin_memory_host_transactions,
+ "memory/performance_schema/events_transactions_summary_by_host_by_event_name");
+ init_builtin_memory_class( & builtin_memory_host_memory,
+ "memory/performance_schema/memory_summary_by_host_by_event_name");
+
+ init_builtin_memory_class( & builtin_memory_thread,
+ "memory/performance_schema/threads");
+ init_builtin_memory_class( & builtin_memory_thread_waits,
+ "memory/performance_schema/events_waits_summary_by_thread_by_event_name");
+ init_builtin_memory_class( & builtin_memory_thread_stages,
+ "memory/performance_schema/events_stages_summary_by_thread_by_event_name");
+ init_builtin_memory_class( & builtin_memory_thread_statements,
+ "memory/performance_schema/events_statements_summary_by_thread_by_event_name");
+ init_builtin_memory_class( & builtin_memory_thread_transactions,
+ "memory/performance_schema/events_transactions_summary_by_thread_by_event_name");
+ init_builtin_memory_class( & builtin_memory_thread_memory,
+ "memory/performance_schema/memory_summary_by_thread_by_event_name");
+
+ init_builtin_memory_class( & builtin_memory_thread_waits_history,
+ "memory/performance_schema/events_waits_history");
+ init_builtin_memory_class( & builtin_memory_thread_stages_history,
+ "memory/performance_schema/events_stages_history");
+ init_builtin_memory_class( & builtin_memory_thread_statements_history,
+ "memory/performance_schema/events_statements_history");
+ init_builtin_memory_class( & builtin_memory_thread_statements_history_tokens,
+ "memory/performance_schema/events_statements_history.tokens");
+ init_builtin_memory_class( & builtin_memory_thread_statements_history_sqltext,
+ "memory/performance_schema/events_statements_history.sqltext");
+ init_builtin_memory_class( & builtin_memory_thread_statements_stack,
+ "memory/performance_schema/events_statements_current");
+ init_builtin_memory_class( & builtin_memory_thread_statements_stack_tokens,
+ "memory/performance_schema/events_statements_current.tokens");
+ init_builtin_memory_class( & builtin_memory_thread_statements_stack_sqltext,
+ "memory/performance_schema/events_statements_current.sqltext");
+ init_builtin_memory_class( & builtin_memory_thread_transaction_history,
+ "memory/performance_schema/events_transactions_history");
+ init_builtin_memory_class( & builtin_memory_thread_session_connect_attrs,
+ "memory/performance_schema/session_connect_attrs");
+
+ init_builtin_memory_class( & builtin_memory_user,
+ "memory/performance_schema/users");
+ init_builtin_memory_class( & builtin_memory_user_waits,
+ "memory/performance_schema/events_waits_summary_by_user_by_event_name");
+ init_builtin_memory_class( & builtin_memory_user_stages,
+ "memory/performance_schema/events_stages_summary_by_user_by_event_name");
+ init_builtin_memory_class( & builtin_memory_user_statements,
+ "memory/performance_schema/events_statements_summary_by_user_by_event_name");
+ init_builtin_memory_class( & builtin_memory_user_transactions,
+ "memory/performance_schema/events_transactions_summary_by_user_by_event_name");
+ init_builtin_memory_class( & builtin_memory_user_memory,
+ "memory/performance_schema/memory_summary_by_user_by_event_name");
+
+ init_builtin_memory_class( & builtin_memory_mutex_class,
+ "memory/performance_schema/mutex_class");
+ init_builtin_memory_class( & builtin_memory_rwlock_class,
+ "memory/performance_schema/rwlock_class");
+ init_builtin_memory_class( & builtin_memory_cond_class,
+ "memory/performance_schema/cond_class");
+ init_builtin_memory_class( & builtin_memory_thread_class,
+ "memory/performance_schema/thread_class");
+ init_builtin_memory_class( & builtin_memory_file_class,
+ "memory/performance_schema/file_class");
+ init_builtin_memory_class( & builtin_memory_socket_class,
+ "memory/performance_schema/socket_class");
+ init_builtin_memory_class( & builtin_memory_stage_class,
+ "memory/performance_schema/stage_class");
+ init_builtin_memory_class( & builtin_memory_statement_class,
+ "memory/performance_schema/statement_class");
+ init_builtin_memory_class( & builtin_memory_memory_class,
+ "memory/performance_schema/memory_class");
+
+ init_builtin_memory_class( & builtin_memory_setup_actor,
+ "memory/performance_schema/setup_actors");
+ init_builtin_memory_class( & builtin_memory_setup_object,
+ "memory/performance_schema/setup_objects");
+
+ init_builtin_memory_class( & builtin_memory_digest,
+ "memory/performance_schema/events_statements_summary_by_digest");
+ init_builtin_memory_class( & builtin_memory_digest_tokens,
+ "memory/performance_schema/events_statements_summary_by_digest.tokens");
+
+ init_builtin_memory_class( & builtin_memory_stages_history_long,
+ "memory/performance_schema/events_stages_history_long");
+ init_builtin_memory_class( & builtin_memory_statements_history_long,
+ "memory/performance_schema/events_statements_history_long");
+ init_builtin_memory_class( & builtin_memory_statements_history_long_tokens,
+ "memory/performance_schema/events_statements_history_long.tokens");
+ init_builtin_memory_class( & builtin_memory_statements_history_long_sqltext,
+ "memory/performance_schema/events_statements_history_long.sqltext");
+ init_builtin_memory_class( & builtin_memory_transactions_history_long,
+ "memory/performance_schema/events_transactions_history_long");
+ init_builtin_memory_class( & builtin_memory_waits_history_long,
+ "memory/performance_schema/events_waits_history_long");
+
+ init_builtin_memory_class( & builtin_memory_table,
+ "memory/performance_schema/table_handles");
+ init_builtin_memory_class( & builtin_memory_table_share,
+ "memory/performance_schema/table_shares");
+ init_builtin_memory_class( & builtin_memory_table_share_index,
+ "memory/performance_schema/table_io_waits_summary_by_index_usage");
+ init_builtin_memory_class( & builtin_memory_table_share_lock,
+ "memory/performance_schema/table_lock_waits_summary_by_table");
+
+ init_builtin_memory_class( & builtin_memory_program,
+ "memory/performance_schema/events_statements_summary_by_program");
+ init_builtin_memory_class( & builtin_memory_prepared_stmt,
+ "memory/performance_schema/prepared_statements_instances");
+
+ init_builtin_memory_class( & builtin_memory_scalable_buffer,
+ "memory/performance_schema/scalable_buffer");
+}
+
+static PFS_builtin_memory_class* all_builtin_memory[]=
+{
+ & builtin_memory_mutex,
+ & builtin_memory_rwlock,
+ & builtin_memory_cond,
+ & builtin_memory_file,
+ & builtin_memory_socket,
+ & builtin_memory_mdl,
+ & builtin_memory_file_handle,
+
+ & builtin_memory_account,
+ & builtin_memory_account_waits,
+ & builtin_memory_account_stages,
+ & builtin_memory_account_statements,
+ & builtin_memory_account_transactions,
+ & builtin_memory_account_memory,
+
+ & builtin_memory_global_stages,
+ & builtin_memory_global_statements,
+ & builtin_memory_global_memory,
+
+ & builtin_memory_host,
+ & builtin_memory_host_waits,
+ & builtin_memory_host_stages,
+ & builtin_memory_host_statements,
+ & builtin_memory_host_transactions,
+ & builtin_memory_host_memory,
+
+ & builtin_memory_thread,
+ & builtin_memory_thread_waits,
+ & builtin_memory_thread_stages,
+ & builtin_memory_thread_statements,
+ & builtin_memory_thread_transactions,
+ & builtin_memory_thread_memory,
+
+ & builtin_memory_thread_waits_history,
+ & builtin_memory_thread_stages_history,
+ & builtin_memory_thread_statements_history,
+ & builtin_memory_thread_statements_history_tokens,
+ & builtin_memory_thread_statements_history_sqltext,
+ & builtin_memory_thread_statements_stack,
+ & builtin_memory_thread_statements_stack_tokens,
+ & builtin_memory_thread_statements_stack_sqltext,
+ & builtin_memory_thread_transaction_history,
+ & builtin_memory_thread_session_connect_attrs,
+
+ & builtin_memory_user,
+ & builtin_memory_user_waits,
+ & builtin_memory_user_stages,
+ & builtin_memory_user_statements,
+ & builtin_memory_user_transactions,
+ & builtin_memory_user_memory,
+
+ & builtin_memory_mutex_class,
+ & builtin_memory_rwlock_class,
+ & builtin_memory_cond_class,
+ & builtin_memory_thread_class,
+ & builtin_memory_file_class,
+ & builtin_memory_socket_class,
+ & builtin_memory_stage_class,
+ & builtin_memory_statement_class,
+ & builtin_memory_memory_class,
+
+ & builtin_memory_setup_actor,
+ & builtin_memory_setup_object,
+
+ & builtin_memory_digest,
+ & builtin_memory_digest_tokens,
+
+ & builtin_memory_stages_history_long,
+ & builtin_memory_statements_history_long,
+ & builtin_memory_statements_history_long_tokens,
+ & builtin_memory_statements_history_long_sqltext,
+ & builtin_memory_transactions_history_long,
+ & builtin_memory_waits_history_long,
+
+ & builtin_memory_table,
+ & builtin_memory_table_share,
+ & builtin_memory_table_share_index,
+ & builtin_memory_table_share_lock,
+
+ & builtin_memory_program,
+ & builtin_memory_prepared_stmt,
+
+ & builtin_memory_scalable_buffer,
+
+ NULL
+};
+
+
+PFS_builtin_memory_class *find_builtin_memory_class(PFS_builtin_memory_key key)
+{
+ if (key == 0)
+ return NULL;
+
+ return all_builtin_memory[key - 1];
+}
+