minio/internal/http
Harshavardhana 91d8bddbd1
use sendfile/splice implementation to perform DMA (#18411)
sendfile implementation to perform DMA on all platforms

Go stdlib already supports sendfile/splice implementations
for

- Linux
- Windows
- *BSD
- Solaris

Along with this change however O_DIRECT for reads() must be
removed as well since we need to use sendfile() implementation

The main reason to add O_DIRECT for reads was to reduce the
chances of page-cache causing OOMs for MinIO, however it would
seem that avoiding buffer copies from user-space to kernel space
this issue is not a problem anymore.

There is no Go based memory allocation required, and neither
the page-cache is referenced back to MinIO. This page-
cache reference is fully owned by kernel at this point, this
essentially should solve the problem of page-cache build up.

With this now we also support SG - when NIC supports Scatter/Gather
https://en.wikipedia.org/wiki/Gather/scatter_(vector_addressing)
2023-11-10 10:10:14 -08:00
..
check_port_linux.go add configurable VRF interface and user-timeout (#17108) 2023-05-03 14:12:25 -07:00
check_port_others.go add configurable VRF interface and user-timeout (#17108) 2023-05-03 14:12:25 -07:00
check_port_test.go add configurable VRF interface and user-timeout (#17108) 2023-05-03 14:12:25 -07:00
close.go replace io.Discard usage to fix some NUMA copy() latencies (#18394) 2023-11-06 14:26:08 -08:00
dial_dnscache.go fix: upon DNS refresh() failure use previous values (#17561) 2023-07-03 12:30:51 -07:00
dial_linux.go vrf: Fix testing for loopback coming from the address (#17372) 2023-06-07 09:53:05 -07:00
dial_others.go add configurable VRF interface and user-timeout (#17108) 2023-05-03 14:12:25 -07:00
headers.go export cluster health as prometheus metrics (#17741) 2023-07-28 01:16:53 -07:00
lambda-headers.go feat: add lambda transformation functions target (#16507) 2023-03-07 08:12:41 -08:00
listener_test.go listen: Only error out if not able to bind any interface (#17353) 2023-06-12 09:09:28 -07:00
listener.go listen: Only error out if not able to bind any interface (#17353) 2023-06-12 09:09:28 -07:00
request-recorder.go fix: regression in counting total requests (#17024) 2023-04-12 14:37:19 -07:00
response-recorder.go use sendfile/splice implementation to perform DMA (#18411) 2023-11-10 10:10:14 -08:00
server_test.go Update to minio/pkg/v2 (#17967) 2023-09-04 12:57:37 -07:00
server.go fix: do not os.Exit(1) while writing goroutines during shutdown (#17640) 2023-07-12 07:18:30 -07:00
transports.go Update to minio/pkg/v2 (#17967) 2023-09-04 12:57:37 -07:00