Block based caching and the current readahead support do not interact well, so remove readahead support before adding block caching. Readahead will be re-added later.
Signed-off-by: David Edmondson <david.edmond...@oracle.com> --- block/curl.c | 23 ++++------------------- docs/system/device-url-syntax.rst.inc | 7 ------- qapi/block-core.json | 4 ---- 3 files changed, 4 insertions(+), 30 deletions(-) diff --git a/block/curl.c b/block/curl.c index 32ec760f66..d0c74d7de5 100644 --- a/block/curl.c +++ b/block/curl.c @@ -65,7 +65,6 @@ static CURLMcode __curl_multi_socket_action(CURLM *multi_handle, #define CURL_TIMEOUT_MAX 10000 #define CURL_BLOCK_OPT_URL "url" -#define CURL_BLOCK_OPT_READAHEAD "readahead" #define CURL_BLOCK_OPT_SSLVERIFY "sslverify" #define CURL_BLOCK_OPT_TIMEOUT "timeout" #define CURL_BLOCK_OPT_COOKIE "cookie" @@ -76,7 +75,6 @@ static CURLMcode __curl_multi_socket_action(CURLM *multi_handle, #define CURL_BLOCK_OPT_PROXY_PASSWORD_SECRET "proxy-password-secret" #define CURL_BLOCK_OPT_OFFSET "offset" -#define CURL_BLOCK_OPT_READAHEAD_DEFAULT (256 * 1024) #define CURL_BLOCK_OPT_SSLVERIFY_DEFAULT true #define CURL_BLOCK_OPT_TIMEOUT_DEFAULT 5 @@ -124,7 +122,6 @@ typedef struct BDRVCURLState { uint64_t len; CURLState states[CURL_NUM_STATES]; char *url; - size_t readahead_size; bool sslverify; uint64_t timeout; char *cookie; @@ -615,11 +612,6 @@ static QemuOptsList runtime_opts = { .type = QEMU_OPT_STRING, .help = "URL to open", }, - { - .name = CURL_BLOCK_OPT_READAHEAD, - .type = QEMU_OPT_SIZE, - .help = "Readahead size", - }, { .name = CURL_BLOCK_OPT_SSLVERIFY, .type = QEMU_OPT_BOOL, @@ -705,14 +697,6 @@ static int curl_open(BlockDriverState *bs, QDict *options, int flags, goto out_noclean; } - s->readahead_size = qemu_opt_get_size(opts, CURL_BLOCK_OPT_READAHEAD, - CURL_BLOCK_OPT_READAHEAD_DEFAULT); - if ((s->readahead_size & 0x1ff) != 0) { - error_setg(errp, "HTTP_READAHEAD_SIZE %zd is not a multiple of 512", - s->readahead_size); - goto out_noclean; - } - s->timeout = qemu_opt_get_number(opts, CURL_BLOCK_OPT_TIMEOUT, CURL_BLOCK_OPT_TIMEOUT_DEFAULT); if (s->timeout > CURL_TIMEOUT_MAX) { @@ -898,7 +882,7 @@ static void curl_setup_preadv(BlockDriverState *bs, CURLAIOCB *acb) state->buf_off = 0; g_free(state->orig_buf); state->buf_start = start; - state->buf_len = MIN(acb->end + s->readahead_size, s->len - start); + state->buf_len = MIN(acb->end, s->len - start); end = start + state->buf_len - 1; state->orig_buf = g_try_malloc(state->buf_len); if (state->buf_len && state->orig_buf == NULL) { @@ -971,8 +955,9 @@ static void curl_refresh_filename(BlockDriverState *bs) { BDRVCURLState *s = bs->opaque; - /* "readahead" and "timeout" do not change the guest-visible data, - * so ignore them */ + /* + * "timeout" does not change the guest-visible data, so ignore it. + */ if (s->sslverify != CURL_BLOCK_OPT_SSLVERIFY_DEFAULT || s->cookie || s->username || s->password || s->proxyusername || s->proxypassword) diff --git a/docs/system/device-url-syntax.rst.inc b/docs/system/device-url-syntax.rst.inc index 33f1ddfe6d..bc38b9df38 100644 --- a/docs/system/device-url-syntax.rst.inc +++ b/docs/system/device-url-syntax.rst.inc @@ -174,13 +174,6 @@ These are specified using a special URL syntax. ``url`` The full URL when passing options to the driver explicitly. - ``readahead`` - The amount of data to read ahead with each range request to the - remote server. This value may optionally have the suffix 'T', 'G', - 'M', 'K', 'k' or 'b'. If it does not have a suffix, it will be - assumed to be in bytes. The value must be a multiple of 512 bytes. - It defaults to 256k. - ``sslverify`` Whether to verify the remote server's certificate when connecting over SSL. It can have the value 'on' or 'off'. It defaults to diff --git a/qapi/block-core.json b/qapi/block-core.json index 197bdc1c36..d6f5e91cc3 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -3752,9 +3752,6 @@ # # @url: URL of the image file # -# @readahead: Size of the read-ahead cache; must be a multiple of -# 512 (defaults to 256 kB) -# # @timeout: Timeout for connections, in seconds (defaults to 5) # # @username: Username for authentication (defaults to none) @@ -3771,7 +3768,6 @@ ## { 'struct': 'BlockdevOptionsCurlBase', 'data': { 'url': 'str', - '*readahead': 'int', '*timeout': 'int', '*username': 'str', '*password-secret': 'str', -- 2.27.0