summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
5226f1b)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
DBG("Adding context to channel %s", chan->channel->name);
ret = kernctl_add_context(chan->fd, &ctx->ctx);
if (ret < 0) {
DBG("Adding context to channel %s", chan->channel->name);
ret = kernctl_add_context(chan->fd, &ctx->ctx);
if (ret < 0) {
case ENOSYS:
/* Exists but not available for this kernel */
ret = LTTNG_ERR_KERN_CONTEXT_UNAVAILABLE;
case ENOSYS:
/* Exists but not available for this kernel */
ret = LTTNG_ERR_KERN_CONTEXT_UNAVAILABLE;
ret = kernctl_create_event(channel->fd, event->event);
if (ret < 0) {
ret = kernctl_create_event(channel->fd, event->event);
if (ret < 0) {
case EEXIST:
break;
case ENOSYS:
case EEXIST:
break;
case ENOSYS:
default:
PERROR("create event ioctl");
}
default:
PERROR("create event ioctl");
}
ret = kernctl_enable(event->fd);
if (ret < 0) {
ret = kernctl_enable(event->fd);
if (ret < 0) {
case EEXIST:
ret = LTTNG_ERR_KERN_EVENT_EXIST;
break;
case EEXIST:
ret = LTTNG_ERR_KERN_EVENT_EXIST;
break;
ret = kernctl_disable(chan->fd);
if (ret < 0) {
PERROR("disable chan ioctl");
ret = kernctl_disable(chan->fd);
if (ret < 0) {
PERROR("disable chan ioctl");
assert(chan);
ret = kernctl_enable(chan->fd);
assert(chan);
ret = kernctl_enable(chan->fd);
- if (ret < 0 && errno != EEXIST) {
+ if (ret < 0 && ret != -EEXIST) {
PERROR("Enable kernel chan");
goto error;
}
PERROR("Enable kernel chan");
goto error;
}
ret = kernctl_enable(event->fd);
if (ret < 0) {
ret = kernctl_enable(event->fd);
if (ret < 0) {
case EEXIST:
ret = LTTNG_ERR_KERN_EVENT_EXIST;
break;
case EEXIST:
ret = LTTNG_ERR_KERN_EVENT_EXIST;
break;
ret = kernctl_disable(event->fd);
if (ret < 0) {
ret = kernctl_disable(event->fd);
if (ret < 0) {
case EEXIST:
ret = LTTNG_ERR_KERN_EVENT_EXIST;
break;
case EEXIST:
ret = LTTNG_ERR_KERN_EVENT_EXIST;
break;
if (!ret) {
return LTTNG_OK;
}
if (!ret) {
return LTTNG_OK;
}
case EINVAL:
return LTTNG_ERR_INVALID;
case ENOMEM:
case EINVAL:
return LTTNG_ERR_INVALID;
case ENOMEM:
if (!ret) {
return LTTNG_OK;
}
if (!ret) {
return LTTNG_OK;
}
case EINVAL:
return LTTNG_ERR_INVALID;
case ENOMEM:
case EINVAL:
return LTTNG_ERR_INVALID;
case ENOMEM:
fd = kernctl_syscall_list(kernel_tracer_fd);
if (fd < 0) {
fd = kernctl_syscall_list(kernel_tracer_fd);
if (fd < 0) {
PERROR("kernelctl syscall list");
goto error_ioctl;
}
PERROR("kernelctl syscall list");
goto error_ioctl;
}
}
ret = kernctl_snapshot(stream->wait_fd);
if (ret < 0) {
}
ret = kernctl_snapshot(stream->wait_fd);
if (ret < 0) {
- if (errno != EAGAIN && errno != ENODATA) {
+ if (ret != -EAGAIN && ret != -ENODATA) {
PERROR("live timer kernel snapshot");
ret = -1;
goto end;
PERROR("live timer kernel snapshot");
ret = -1;
goto end;
mmap_base = stream->mmap_base;
ret = kernctl_get_mmap_read_offset(stream->wait_fd, &mmap_offset);
if (ret < 0) {
mmap_base = stream->mmap_base;
ret = kernctl_get_mmap_read_offset(stream->wait_fd, &mmap_offset);
if (ret < 0) {
PERROR("tracer ctl get_mmap_read_offset");
goto end;
}
PERROR("tracer ctl get_mmap_read_offset");
goto end;
}
ret = kernctl_snapshot(infd);
if (ret != 0) {
PERROR("Getting sub-buffer snapshot.");
ret = kernctl_snapshot(infd);
if (ret != 0) {
PERROR("Getting sub-buffer snapshot.");
ret = kernctl_snapshot_get_produced(infd, pos);
if (ret != 0) {
PERROR("kernctl_snapshot_get_produced");
ret = kernctl_snapshot_get_produced(infd, pos);
if (ret != 0) {
PERROR("kernctl_snapshot_get_produced");
ret = kernctl_snapshot_get_consumed(infd, pos);
if (ret != 0) {
PERROR("kernctl_snapshot_get_consumed");
ret = kernctl_snapshot_get_consumed(infd, pos);
if (ret != 0) {
PERROR("kernctl_snapshot_get_consumed");
ret = kernctl_buffer_flush(stream->wait_fd);
if (ret < 0) {
ERR("Failed to flush kernel stream");
ret = kernctl_buffer_flush(stream->wait_fd);
if (ret < 0) {
ERR("Failed to flush kernel stream");
&stream->max_sb_size);
if (ret < 0) {
ERR("Getting kernel max_sb_size");
&stream->max_sb_size);
if (ret < 0) {
ERR("Getting kernel max_sb_size");
ret = kernctl_get_subbuf(stream->wait_fd, &consumed_pos);
if (ret < 0) {
ret = kernctl_get_subbuf(stream->wait_fd, &consumed_pos);
if (ret < 0) {
PERROR("kernctl_get_subbuf snapshot");
PERROR("kernctl_get_subbuf snapshot");
goto end_unlock;
}
DBG("Kernel consumer get subbuf failed. Skipping it.");
goto end_unlock;
}
DBG("Kernel consumer get subbuf failed. Skipping it.");
ret = kernctl_get_subbuf_size(stream->wait_fd, &len);
if (ret < 0) {
ERR("Snapshot kernctl_get_subbuf_size");
ret = kernctl_get_subbuf_size(stream->wait_fd, &len);
if (ret < 0) {
ERR("Snapshot kernctl_get_subbuf_size");
goto error_put_subbuf;
}
ret = kernctl_get_padded_subbuf_size(stream->wait_fd, &padded_len);
if (ret < 0) {
ERR("Snapshot kernctl_get_padded_subbuf_size");
goto error_put_subbuf;
}
ret = kernctl_get_padded_subbuf_size(stream->wait_fd, &padded_len);
if (ret < 0) {
ERR("Snapshot kernctl_get_padded_subbuf_size");
ret = kernctl_put_subbuf(stream->wait_fd);
if (ret < 0) {
ERR("Snapshot kernctl_put_subbuf");
ret = kernctl_put_subbuf(stream->wait_fd);
if (ret < 0) {
ERR("Snapshot kernctl_put_subbuf");
goto end_unlock;
}
consumed_pos += stream->max_sb_size;
goto end_unlock;
}
consumed_pos += stream->max_sb_size;
error_put_subbuf:
ret = kernctl_put_subbuf(stream->wait_fd);
if (ret < 0) {
error_put_subbuf:
ret = kernctl_put_subbuf(stream->wait_fd);
if (ret < 0) {
ERR("Snapshot kernctl_put_subbuf error path");
}
end_unlock:
ERR("Snapshot kernctl_put_subbuf error path");
}
end_unlock:
ret = kernctl_snapshot(metadata->wait_fd);
if (ret < 0) {
ret = kernctl_snapshot(metadata->wait_fd);
if (ret < 0) {
ERR("Sync metadata, taking kernel snapshot failed.");
goto end;
}
ERR("Sync metadata, taking kernel snapshot failed.");
goto end;
}
*/
DBG("Reserving sub buffer failed (everything is normal, "
"it is due to concurrency)");
*/
DBG("Reserving sub buffer failed (everything is normal, "
"it is due to concurrency)");
PERROR("Getting sub-buffer len failed.");
err = kernctl_put_subbuf(infd);
if (err != 0) {
PERROR("Getting sub-buffer len failed.");
err = kernctl_put_subbuf(infd);
if (err != 0) {
PERROR("Error in unreserving sub buffer\n");
PERROR("Error in unreserving sub buffer\n");
- } else if (errno == EIO) {
+ } else if (err == -EIO) {
/* Should never happen with newer LTTng versions */
PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
/* Should never happen with newer LTTng versions */
PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
if (ret < 0) {
err = kernctl_put_subbuf(infd);
if (err != 0) {
if (ret < 0) {
err = kernctl_put_subbuf(infd);
if (err != 0) {
PERROR("Error in unreserving sub buffer\n");
PERROR("Error in unreserving sub buffer\n");
- } else if (errno == EIO) {
+ } else if (err == -EIO) {
/* Should never happen with newer LTTng versions */
PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
/* Should never happen with newer LTTng versions */
PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
PERROR("Getting sub-buffer len failed.");
err = kernctl_put_subbuf(infd);
if (err != 0) {
PERROR("Getting sub-buffer len failed.");
err = kernctl_put_subbuf(infd);
if (err != 0) {
PERROR("Error in unreserving sub buffer\n");
PERROR("Error in unreserving sub buffer\n");
- } else if (errno == EIO) {
+ } else if (err == -EIO) {
/* Should never happen with newer LTTng versions */
PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
/* Should never happen with newer LTTng versions */
PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
err = kernctl_put_next_subbuf(infd);
if (err != 0) {
err = kernctl_put_next_subbuf(infd);
if (err != 0) {
PERROR("Error in unreserving sub buffer\n");
PERROR("Error in unreserving sub buffer\n");
- } else if (errno == EIO) {
+ } else if (err == -EIO) {
/* Should never happen with newer LTTng versions */
PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
/* Should never happen with newer LTTng versions */
PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
}
ret = kernctl_get_mmap_len(stream->wait_fd, &mmap_len);
if (ret != 0) {
PERROR("kernctl_get_mmap_len");
ret = kernctl_get_mmap_len(stream->wait_fd, &mmap_len);
if (ret != 0) {
PERROR("kernctl_get_mmap_len");
goto error_close_fd;
}
stream->mmap_len = (size_t) mmap_len;
goto error_close_fd;
}
stream->mmap_len = (size_t) mmap_len;