perfschema memory related instrumentation changes

This commit is contained in:
Sergei Golubchik 2020-01-29 13:50:26 +01:00
commit 7c58e97bf6
307 changed files with 2620 additions and 1741 deletions

View file

@ -24,6 +24,28 @@
#include "vio_priv.h"
#include "ssl_compat.h"
PSI_memory_key key_memory_vio_ssl_fd;
PSI_memory_key key_memory_vio;
PSI_memory_key key_memory_vio_read_buffer;
#ifdef HAVE_PSI_INTERFACE
static PSI_memory_info all_vio_memory[]=
{
{&key_memory_vio_ssl_fd, "ssl_fd", 0},
{&key_memory_vio, "vio", 0},
{&key_memory_vio_read_buffer, "read_buffer", 0},
};
void init_vio_psi_keys()
{
const char* category= "vio";
int count;
count= array_elements(all_vio_memory);
mysql_memory_register(category, all_vio_memory, count);
}
#endif
#ifdef _WIN32
/**
@ -80,7 +102,8 @@ static void vio_init(Vio *vio, enum enum_vio_type type,
vio->localhost= flags & VIO_LOCALHOST;
vio->read_timeout= vio->write_timeout= -1;
if ((flags & VIO_BUFFERED_READ) &&
!(vio->read_buffer= (char*)my_malloc(VIO_READ_BUFFER_SIZE, MYF(MY_WME))))
!(vio->read_buffer= (char*)my_malloc(key_memory_vio_read_buffer,
VIO_READ_BUFFER_SIZE, MYF(MY_WME))))
flags&= ~VIO_BUFFERED_READ;
#ifdef _WIN32
if (type == VIO_TYPE_NAMEDPIPE)
@ -217,7 +240,7 @@ Vio *mysql_socket_vio_new(MYSQL_SOCKET mysql_socket, enum enum_vio_type type, ui
my_socket sd= mysql_socket_getfd(mysql_socket);
DBUG_ENTER("mysql_socket_vio_new");
DBUG_PRINT("enter", ("sd: %d", (int)sd));
if ((vio = (Vio*) my_malloc(sizeof(*vio),MYF(MY_WME))))
if ((vio = (Vio*) my_malloc(key_memory_vio, sizeof(*vio), MYF(MY_WME))))
{
vio_init(vio, type, sd, flags);
vio->desc= (vio->type == VIO_TYPE_SOCKET ? "socket" : "TCP/IP");
@ -247,7 +270,7 @@ Vio *vio_new_win32pipe(HANDLE hPipe)
{
Vio *vio;
DBUG_ENTER("vio_new_handle");
if ((vio = (Vio*) my_malloc(sizeof(Vio),MYF(MY_WME))))
if ((vio = (Vio*) my_malloc(PSI_INSTRUMENT_ME, sizeof(Vio),MYF(MY_WME))))
{
vio_init(vio, VIO_TYPE_NAMEDPIPE, 0, VIO_LOCALHOST);
vio->desc= "named pipe";

View file

@ -26,6 +26,10 @@
#include <m_string.h>
#include <violite.h>
extern PSI_memory_key key_memory_vio;
extern PSI_memory_key key_memory_vio_read_buffer;
extern PSI_memory_key key_memory_vio_ssl_fd;
#ifdef _WIN32
size_t vio_read_pipe(Vio *vio, uchar * buf, size_t size);
size_t vio_write_pipe(Vio *vio, const uchar * buf, size_t size);

View file

@ -246,7 +246,8 @@ new_VioSSLFd(const char *key_file, const char *cert_file,
check_ssl_init();
if (!(ssl_fd= ((struct st_VioSSLFd*)
my_malloc(sizeof(struct st_VioSSLFd),MYF(0)))))
my_malloc(key_memory_vio_ssl_fd,
sizeof(struct st_VioSSLFd), MYF(0)))))
goto err0;
if (!(ssl_fd->ssl_context= SSL_CTX_new(is_client_method ?
SSLv23_client_method() :